Lo siento, recibes el error porque las columnas no están en formato de fecha. He actualizado mi respuesta arriba para convertir también las columnas relevantes en valores de fecha.
Avalados por :
Hola expertos,
Tengo un requisito para completar una columna con un código de 3 dígitos basado en algunas condiciones.
Estoy intentando utilizar una declaración if then else o un case en una columna calculada en una vista gráfica. He buscado en el foro pero no logro identificar el hilo correcto que resuelva mi problema.
Tengo estas columnas de fecha en mi nodo de proyecto - 0POS_DATE, 0PSTNG_DATE, 0DUEDATE
basado en los campos, a continuación está la lógica que estoy intentando implementar. Por favor, guíame.
CASE
Cuando "0POS_DATE" <> '00000000' Entonces '231'
Cuando "0PSTNG_DATE" = '00000000' O TO_DATE ('2018-09-01') < "0PSTNG_DATE" Entonces '723'
Cuando "0DUEDATE"='00000000' O TO_DATE ('2018-09-01') <= "0DUEDATE" Entonces '654'
Cuando DAYS_BETWEEN("0DUEDATE" , TO_DATE (2018-09-01')) > 100 Entonces '211'
ENDCASE.
Lo siento, recibes el error porque las columnas no están en formato de fecha. He actualizado mi respuesta arriba para convertir también las columnas relevantes en valores de fecha.
Puedes convertir de cadena a fecha como TO_DATE('2018-09-11','YYYY-MM-DD') y ejecutarlo en el motor SQL.
Hola Florain, gracias por la respuesta, me ayudó mucho.
ONETDUEDATE - NVARCHAR LONGITUD 8
También intenté con esta expresión pero no sirvió
if(daysbetween("0NETDUEDATE" ,date( '20180911')) > 100, '211','')
if(daysbetween("0NETDUEDATE" , '20180911') > 100, '211','')
En una columna calculada del motor de cálculo, debes apilar varias llamadas de funciones if para cumplir con tu requisito. Por ejemplo:
if("OPOS_DATE" <> '00000000', '231',
if("OPSTNG_DATE" = '00000000' or date('2018-09-01') < date("OPSTNG_DATE"), '723',
if("ODUEDATE" = '00000000' or date('2018-09-01') <= date("ODUEDATE"), '654',
if(days_between(date("ODUEDATE"), date('2018-09-01')) > 100, '211', '')
)
)
)
Saludos,
Florian
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute