Ver Mensaje Individual
  #5 (permalink)  
Antiguo 30/11/2013, 10:26
ALFAJOR
 
Fecha de Ingreso: agosto-2010
Mensajes: 9
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Rango de búsqueda a una consulta

[URL="http://dev.mysql.com/doc/refman/5.0/es/comparisons-using-subqueries.html"]Gracias[/URL] me sirvió de mucho, quedó algo así :)
Código SQL:
Ver original
  1. SELECT t10.*, t2.escalamassie, t2.fecha  FROM(
  2. SELECT * FROM(
  3. SELECT paciente.pac_rut, pac_nombre, pac_sexo, MONTH( CURDATE( ) ) - MONTH( pac_fechanac ) +12 * IF( MONTH( CURDATE( ) ) < MONTH( pac_fechanac ) , 1, IF( MONTH( CURDATE( ) ) = MONTH( pac_fechanac ) , IF( DAY( CURDATE( ) ) < DAY( pac_fechanac ) , 1, 0 ) , 0 ) ) - IF( MONTH( CURDATE( ) ) <> MONTH( pac_fechanac ) , (
  4. DAY( CURDATE( ) ) < DAY( pac_fechanac ) ) , IF( DAY( CURDATE( ) ) < DAY( pac_fechanac ) , 1, 0 )
  5. ) AS pers_meses, (
  6. DAY( CURDATE( ) ) - DAY( pac_fechanac ) +30 * ( DAY( CURDATE( ) ) < DAY( pac_fechanac ) )
  7. ) AS pers_dias, (
  8. YEAR( FROM_DAYS( DATEDIFF( NOW( ) , pac_fechanac ) ) )
  9. ) AS anos
  10. FROM paciente
  11. ORDER BY pers_meses DESC
  12. ) AS t1 WHERE  pac_sexo = '$parametro5' AND pers_meses >= '$parametro1f' AND pers_meses <= '$parametro2f'
  13. ) AS t10 LEFT JOIN control AS t2 ON (t10.pac_rut=t2.pac_rut)
  14. WHERE  t2.escalamassie = '$parametro3f'

Ya testeando la plataforma, hay un pequeño GRAN detalle, si bien mi consulta realiza lo siguiente:
Realiza una búsqueda (en este caso) por un parámetro llamado "Escala de Massie", del cuál puedo elegir buscar entre Hombre o Mujer ($parametro5), igual asirganarle un rango de edad (de $parametro1f hasta $parametro2f) pero aquí comienza el problema.

Cuando hago la búsqueda por MESES, por ejemplo de 2 a 8 meses, me arroja resultados de pacientes de 1 año 2 meses, esto dado a que tiene 2 meses...

¿Cómo hago?, me imagino sumarle +12 a meses cuando tenga 1 año? ummm..

PD; nose si va aquí o debo crear otro tema, si no va aquí mi duda pido disculpas del caso.

Última edición por gnzsoloyo; 30/11/2013 a las 10:54 Razón: Codigo de programacion no permitido en foros de BBDD