Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Problema con consultas DateDiff (https://www.clubdelphi.com/foros/showthread.php?t=51172)

enecumene 07-12-2007 15:25:52

Problema con consultas DateDiff
 
Hola Compañeros del foro, aqui vuelvo con un problema con una consulta DateDiff que me esta dando problemas, esta es la consulta:

Código SQL [-]
SELECT casa, factura, condicion, vence, occo, comentario, valor, recibo, fecha, detalle, dpto, status, datediff(fecha, curdate()),
CASE WHEN datediff(Curdate( ), fecha) < 15
THEN valor
ELSE 0
END AS dias15,
CASE WHEN datediff(Curdate( ), fecha )
BETWEEN 16
AND 30
THEN VALOR
ELSE 0
END AS dias30,
CASE WHEN datediff(Curdate( ), fecha)
BETWEEN 31
AND 45
THEN VALOR
ELSE 0
END AS dias45,
CASE WHEN datediff(Curdate( ), fecha)
BETWEEN 46
AND 60
THEN VALOR
ELSE 0
END AS dias60,
CASE WHEN datediff(Curdate( ), fecha)
BETWEEN 61
AND 90
THEN VALOR
ELSE 0
END AS dias90,
CASE WHEN datediff(Curdate( ), fecha)  > 90
THEN VALOR
ELSE 0
END AS mas90
FROM fondo where status = 'DEUDA' and condicion = 'Credito' order by fecha asc

La función de esta consulta es que calcula el tiempo que tiene una factura pendiente, o sea, 30 dias, 45 dias, 60 dias, etc. etc, aqui viene el problema, sucede hace dos dias las facturas que tenian fecha 2007-11-19 el valor aparecia en 0.00, al dia siguiente los de fecha 2007-11-20 aparecian en 0.00 pero los del 19 si tenian su valor ahora hoy los de fecha 2007-11-21 estan en 0.00, por que sucede eso? quien podra ayudarme?(Una de las frases del Chapulin Colorado:D).

Saludos.

enecumene 07-12-2007 18:35:03

Bueno al parecer por el momento resolvi el problema cambiando una pequeña parte del codigo:

Código SQL [-]
SELECT casa, factura, condicion, vence, occo, comentario, valor, recibo, fecha, detalle, dpto, status, datediff(fecha, curdate()),
CASE WHEN datediff(Curdate( ), fecha)
BETWEEN 0 <--AQUI
AND 15    <--Y AQUI
THEN valor
ELSE 0
END AS dias15,
CASE WHEN datediff(Curdate( ), fecha )
BETWEEN 16
AND 30
THEN VALOR
ELSE 0
END AS dias30,
CASE WHEN datediff(Curdate( ), fecha)
BETWEEN 31
AND 45
THEN VALOR
ELSE 0
END AS dias45,
CASE WHEN datediff(Curdate( ), fecha)
BETWEEN 46
AND 60
THEN VALOR
ELSE 0
END AS dias60,
CASE WHEN datediff(Curdate( ), fecha)
BETWEEN 61
AND 90
THEN VALOR
ELSE 0
END AS dias90,
CASE WHEN datediff(Curdate( ), fecha)  > 90
THEN VALOR
ELSE 0
END AS mas90
FROM fondo where status = 'DEUDA' and condicion = 'Credito' order by fecha asc

Mañana veremos que sucede.

Saludos.


La franja horaria es GMT +2. Ahora son las 22:42:04.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi