Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Datediff - calcular días

Estas en el tema de Datediff - calcular días en el foro de Bases de Datos General en Foros del Web. Hola como estan? Necesito crear una consulta que me devuelva los pacientes que tienen cuenta corriente y que su fecha ultima de entrega en la ...
  #1 (permalink)  
Antiguo 20/01/2011, 09:08
mgd
 
Fecha de Ingreso: enero-2009
Mensajes: 129
Antigüedad: 15 años, 9 meses
Puntos: 0
Datediff - calcular días

Hola como estan?
Necesito crear una consulta que me devuelva los pacientes que tienen cuenta corriente y que su fecha ultima de entrega en la cuenta comparada con la fecha actual sea mayor que x cantidad de dias
algo asi

if datediff(fechaentrega, fechaactual) > 10 then

end if

ademas de eso tambien necesito saber que pacientes con cuenta corriente nunca hicieron una entrega

entonces utilizo esta consulta
Código SQL:
Ver original
  1. SELECT pacientes.nombre paciente, cuentahistoria.fecha, datediff(curdate(), cuentahistoria.fecha) AS dias
  2. FROM cuenta INNER JOIN pacientes ON pacientes.codpaciente =cuenta.codpaciente
  3.                         INNER JOIN cuentahistoria ON cuentahistoria.codcuenta = cuenta.codcuenta
  4. WHERE cuentahistoria.estado = 'ALTA' AND cuentahistoria.movimiento = 'E' AND datediff(curdate(), cuentahistoria.fecha) > 10
  5. GROUP BY cuenta.codcuenta
  6. ORDER BY dias DESC

la consulta funciona pero el problema es que necesito que cuentahistoria.fecha sea la ultima fecha de entrega...

con cuentahistoria.movimiento = 'E' controlo que el movimiento sea una entrega pero como dije antes necesito saber si no existe para una cuenta un movimiento que sea entrega

Muchas gracias
  #2 (permalink)  
Antiguo 20/01/2011, 09:49
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Datediff - calcular días

No te sirve algo asi:

SELECT pacientes.nombre paciente, cuentahistoria.fecha, datediff(curdate(), (select max(cuentahistoria.fecha) from cuentas)) AS dias
FROM cuenta INNER JOIN pacientes ON pacientes.codpaciente =cuenta.codpaciente
INNER JOIN cuentahistoria ON cuentahistoria.codcuenta = cuenta.codcuenta
WHERE cuentahistoria.estado = 'ALTA' AND cuentahistoria.movimiento = 'E' AND datediff(curdate(), (select max(cuentahistoria.fecha) from cuentas)) > 10
GROUP BY cuenta.codcuenta
ORDER BY dias DESC



Saludos!

Etiquetas: datediff, calculadora
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:56.