[RESUELTO] DATEDIFF condicionado

Discute sobre las herramientas de la base de datos
Responder
pmartimor
Mensajes: 63
Registrado: Jue Mar 08, 2018 2:11 pm

[RESUELTO] DATEDIFF condicionado

Mensaje por pmartimor »

Buenos días:

Estoy intentado crear un campo calculado entre fechas para un informe con Datediff, pero no logro dar con la sintaxis correcta.
Se trata de mostrar el número de días transcurridos desde una fecha de alta hasta una fecha de baja o fecha actual pero condicionado a que exista fecha de baja, es decir,
SI existe fecha de baja será Datedif([fecha_baja],[fecha_alta],"d"), pero si no hay aún fecha de baja el número de días serán hasta la fecha actual Datedif([fecha_alta],DATE,"d")
¿cómo haría esto en una sola fórmula para un informe?
Saludos y gracias.
Última edición por pmartimor el Mar Nov 27, 2018 2:15 pm, editado 1 vez en total.
LibreOffice 5.1.0.3 en clientes Windows 10, 7, XP sobre BD MySql.
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: DATEDIFF condicionado

Mensaje por RMG »

Hola,

Prueba con algo así.

CASE WHEN "fecha baja" ES VACIO THEN datedif con fecha actual ELSE datedif con fecha baja END

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
pmartimor
Mensajes: 63
Registrado: Jue Mar 08, 2018 2:11 pm

Re: DATEDIFF condicionado

Mensaje por pmartimor »

Gracias RMG
La sentencia CASE no me va en el OpenOffice 4.1.5, ya que quiero utilizarla en el propio informe.
Lo que he hecho y funciona es utilizar IF en el Campo/Formula de las propiedades de ese campo calculado a mostrar en el informe
=IF(DATEDIF([FECHA_BAJA];[FECHA_ALTA];"d")<0;DATEDIF([FECHA_BAJA];[FECHA_ALTA];"d")*(-1)+1;DATEDIF([FECHA_BAJA];[FECHA_ALTA];"d")+1)
Lo que trato de calcular es el tiempo de alta en días por eso le sumo uno si el alta y la baja es el mismo día pues la fórmula da cero en este caso.
Saludos.
LibreOffice 5.1.0.3 en clientes Windows 10, 7, XP sobre BD MySql.
Responder