SQL - consulta sql

 
Vista:

consulta sql

Publicado por aldo (35 intervenciones) el 19/11/2007 18:59:20
Hola,
quiero sacar la diferencia de dias entre la fecha de ingreso y la fecha de egreso de las internaciones.
La consulta es la siguiente...

select carnet,niv,apenom,fecing,fecegre, datediff("dd",fecing,fecegre) as cantdias
from interna

esto me da bien, siempre que la fecha de egreso sea mayor a la de ingreso.
Pero existen dos casos que no se como resolver...

1 - aquellas fechas de egreso que son nulas (quiere decir que aun no tienen fecha de egreso por no estar dados de alta), me dan como resultado null y en realidad quisiera que me calcule los dias que lleva de internado, es decir, que me calcule contra el dia de la fecha en caso de ser null.

2 - si la fecha de egreso es igual a la fecha de ingreso, por logica me da 0, pero en realidad, eso se cuenta como un dia de internado, por lo cual me tiene que mostrar 1 en cantdias.

como puedo hacer esto en la consulta??

gracias
Aldo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:consulta sql

Publicado por Isaias (5072 intervenciones) el 20/11/2007 22:45:28
¿Podiras decirme QUE BASE O MOTOR de datos estas manejando?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta sql

Publicado por aldo (35 intervenciones) el 21/11/2007 16:11:38
Estoy usando SQL Server 2000

gracias Isaias

saludos,
Aldo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta sql

Publicado por Isaias (5072 intervenciones) el 22/11/2007 19:06:27
Para el caso de NULL

select carnet,niv,apenom,fecing,fecegre, datediff("dd",fecing,ISNULL(fecegre, GETDATE())) as cantdias
from interna

Para el caso que te de un 0

select carnet,niv,apenom,fecing,fecegre,
CASE WHEN (
datediff("dd",fecing,ISNULL(fecegre, GETDATE()))) = 0 THEN 1
ELSE datediff("dd",fecing,ISNULL(fecegre, GETDATE()))) END
as cantdias
from interna
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta sql

Publicado por aldo (35 intervenciones) el 22/11/2007 20:31:00
Isaias...
anduvo barbaro!!!
y aprendi algo nuevo para mi...

muchisimas gracias!
un saludo grande
aldo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar