¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo implementar una columna calculada con código de 3 dígitos en una vista gráfica

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 4 Vistas
0
Cargando...

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.

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

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.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Puedes convertir de cadena a fecha como TO_DATE('2018-09-11','YYYY-MM-DD') y ejecutarlo en el motor SQL.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

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','')

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

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

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?