Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola,
Espero que alguien me pueda ayudar, estoy intentando realizar la carga de datos en Qlik sense con la ayuda del ISNULL y es muy diferente a SQL lo que intento es que si el valor es NULO tome el siguiente valor.
Sentencia en SQL
SQL ---> ISNULL(IE.Code,IP.Code)
Intentos en Qlick Sense
Qlik Sense --->
1. IF(ISNULL(IE.CODE),IE.CODE,IP.Code)
2. IF(ISNULL(IE.CODE) = 0,IE.CODE,IP.Code)
Les paso el script
LOAD Code as "Code_ItemEntrega";
SQL SELECT IF(ISNULL(IE.Code),IE.Code,IP.Code)
FROM S3NetSODA.dbo."S3TblObj_Pedido" P
INNER JOIN S3NetSODA.dbo."S3TblObj_ItemPedido" IP ON IP.Pedido = P.Code
INNER JOIN S3NetSODA.dbo."S3TblObj_Periodo" Pd ON P.Prototype = Pd.Prototype AND P.Prototype = 0 AND (P.Fecha BETWEEN Pd.Desde AND Pd.Hasta)
INNER JOIN S3NetSODA.dbo."S3TblObj_EscenarioPeriodo" EP ON EP.Periodo = Pd.Code
LEFT JOIN S3NetSODA.dbo.ItemPedidoEntrega IE ON IE.ItemPedido = IP.Code AND IE.EscenarioPeriodo = EP.Code;
Las relaciones declaradas en los INNER se encuentran de manera correcta.
Espero me puedan ayudar!
Gracias!!!
Hola Cinthya,
Creo que el problema está en que estás usando la función IsNull() en la sentencia SQL, y no en LOAD. Ten en cuenta que todo lo que está detrás del SQL SELECT se envía a la librería de conexión específica. Si por algún motivo IsNull() no es una función válida en tu origen de datos, entonces se produce un error. Mi recomendación sería:
Code_ItemEntrega:
LOAD IF(LEN(IE.Code) = 0, IE.Code, IP.Code) AS Campo;
SQL SELECT IE.Code, IP.Code
FROM S3NetSODA.dbo. "S3TblObj_Pedido" P
INNER JOIN S3NetSODA.dbo. "S3TblObj_ItemPedido" IP
IN IP.Pedido = P.Code
INNER JOIN S3NetSODA.dbo. "S3TblObj_Periodo" Pd
IN P.Prototype = Pd.Prototype
AND P.Prototype = 0
AND (P.Fecha BETWEEN Pd.Desde AND Pd.Hasta)
INNER JOIN S3NetSODA.dbo. "S3TblObj_EscenarioPeriodo" EP EN EP.Periodo = Pd.Code
LEFT JOIN S3NetSODA.dbo.ItemPedidoEntrega IE
IN IE.ItemPedido = IP.Code
AND IE.EscenarioPeriodo = EP.Code;
Miguel
Agregando a lo que dijo Miguel, en tu SQL puedes usar:
T-SQL:
SELECT ISNULL(tuCampo, 'Valor que quieres que devuelva si tuCampo es null') FROM tuTabla
PL/SQL:
SELECT NVL(tuCampo, 'valor que quieres que devuelva si tuCampo es null') FROM tuTabla
Saludos
JV
Muchas Gracias