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 sentido la de la estafa Ayuda del ISNULL y es Muy Diferente a lo SQL Que Intento es Que Si el valor es NULO tomo el valor siguiente.
Sentencia en SQL
SQL ---> ISNULL (IE.Code, IP.Code)
Intentos baño 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 guión Carga de código
LOAD"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 EN IP.Pedido = P.Code
INNER JOIN S3NetSODA.dbo. "S3TblObj_Periodo" Pd EN P.Prototype = Pd.Prototype Y P.Prototype = 0
AND (P.Fecha ENTRE Pd.Desde Y Pd.Hasta)
INNER JOIN S3NetSODA.dbo. "S3TblObj_EscenarioPeriodo" EP EN EP.Periodo = Pd.Code
LEFT JOIN S3NetSODA.dbo.ItemPedidoEntrega IE EN IE.ItemPedido = IP.Code Y IE.EscenarioPeriodo = EP.Code;
Las Relaciones declaradas en los JOIN 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
Hola Cinthya,
Me estoy haciendo a alguien para mirar esto para usted . Estoy utilizando Google Translate - lo siento si esto no está claro
Gracias,
Mike
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
La carga de datos termina exitosamente, sin embargo no esta remplazando el valor cuando es NULL, pareciera que lo filtra y no lo muestra, ¿Alguna opción?
Saludos,
Creo que deberias invertir las asignaciones en el LOAD:
IF(LEN(IE.Code) = 0, IP.Code, IE.Code) AS Campo
Saludos
Gabriel