Ver Mensaje Individual
  #5 (permalink)  
Antiguo 21/01/2009, 14:33
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Culculo de edad en meses

A ver esta consulta, en la que la tabla meses tiene los campos meses y los que tú dices tener en PHPMyAdmin. Te mostrará todo. Aquí por ejemplo he puesto un peso de 8.23 para comparar con el rango para alguien cualquiera que sea su fecha de nacimiento. Hará el cálculo de meses y cruzará los datos con los de la tabla meses, luego hará los cálculos para ver qué rango cubre y te dará el resultado. Esto es sólo el prototipo de consulta, y sólo para que veas que una única consulta puede darte todo lo que quieres, incluso sin recurrir a PHP.

Cita:
SELECT meses. * , '8.23' REFERENCIA, (

CASE WHEN 8.23
BETWEEN 1negED
AND 1posED
THEN "normal"
WHEN 8.23
BETWEEN 1negED
AND 2negED
THEN "-1"
WHEN 8.23 < 2negED
THEN "-2"
WHEN 8.23
BETWEEN 1posED
AND 2posED
THEN " 1"
WHEN 8.23 > 2posED
THEN " 2"
ELSE "nada"
END
)dato, fecha_nacimiento, (
MOD( datediff( curdate( ) , fecha_nacimiento ) , 30 )
)dias, (
FLOOR( datediff( curdate( ) , fecha_nacimiento ) /30 ) + (
CASE WHEN MOD( datediff( curdate( ) , fecha_nacimiento ) , 30 ) >=21
THEN 1
WHEN MOD( datediff( curdate( ) , fecha_nacimiento ) , 30 ) <11
THEN 0
ELSE 0.5
END )
)meses
FROM talla_para_la_edad
INNER JOIN meses ON ( FLOOR( datediff( curdate( ) , fecha_nacimiento ) /30 ) + (
CASE WHEN MOD( datediff( curdate( ) , fecha_nacimiento ) , 30 ) >=21
THEN 1
WHEN MOD( datediff( curdate( ) , fecha_nacimiento ) , 30 ) <11
THEN 0
ELSE 0.5
END ) ) = meses.meses