Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola Comunidad:
tengo problemas al querer cambiar el dato de un campo, quizas sea solo error de sintaxis o lógica, ya que no soy un experto en temas de programación.
pueden apoyarme.
Original
Cambiar
if(PLANT = Centro AND "/BIC/ZCMMSTA" = 'MZ', "/BIC/ZCMMSTA" = 'BC',
ELSE PLANT = Tienda AND "/BIC/ZCMMSTA" = MZ, "/BIC/ZCMMSTA"= FP)
ya sea con SQL o Lenguaje Nativo de QlikView.
saludos
Hola Agustin, prueba esto en el script de Qlikview:
LOAD
IF(PLANT = 'Centro' AND [/BIC/ZCMMSTA] = 'MZ', 'BC',
IF(PLANT = 'Tienda' AND [/BIC/ZCMMSTA] = 'MZ', 'FP', [/BIC/ZCMMSTA])) AS [/BIC/ZCMMSTA]
FROM yourQVD.qvd (qvd);
Saludos
Juan
Puedes por favor indicar cual es el resultado esperado, teniendo en cuenta la primera tabla?
Si el resultado esperado es la tabla de abajo, entonces en la carga la funcion deberia ser
if(PLANT = 'Centro' AND [/BIC/ZCMMSTA] = 'MZ', 'BC',
if(PLANT = 'Tienda' AND [/BIC/ZCMMSTA] = 'MZ', 'FP'))
Si el valor de la columna [/BIC/ZCMMSTA] no cambia entonces
if(PLANT = 'Centro', 'BC',
if(PLANT = 'Tienda', 'FP'))
Saludos
Hola Maximiliano:
la tabla debe quedar así
Maximiliano:
olvide mencionar que hay registro que pueden estar en vacios y es correcto
es por eso que ls que contienen el MZ debe cambiar de acuerdo al tipo de PLANT
saludos
Comunidad:
pongo el codigo con la sugerencia de Maximiliano me marca error en el if
Obsoletos:
SQL SELECT
CAST("/BIC/ZBWCANUMC" AS CHAR) as NUM_CAJAS,
"/BIC/ZCDATAB" as FECHA_INICIO,
"/BIC/ZCMATERI" as MATERIAL,
"/BIC/ZCMMSTA" as STATUS_MATERIAL,
"/BIC/ZCPLANTTX" as CENTRO,
"/BIC/ZCVENDOR" as PROVEEDOR,
CALMONTH as "AÑO_MES",
Substring (CALMONTH,1,4) as "AÑO",
Substring (CALMONTH,5,2) as MES,
CAST(CPTSTISPV as CHAR) as V_COMPRA_S,
CAST(CPTSTREPV as CHAR) as V_COMPRA_E,
CAST(CPTSTISPV + CPTSTREPV as CHAR) AS CT
MATERIAL as NUM_MATERIAL,
MOVETYPE CLS_MOV,
PLANT as NUM_CENTRO,
VENDOR as Num_PROVEEDOR,
"SALES_DIST" AS ZONA,
ROW_NUMBER( ) OVER(ORDER BY PLANT ASC) AS REGISTRO
if (PLANT = ‘C001’ AND [/BIC/ZCMMSTA] = 'MZ', 'BC')
//if(PLANT = 'Tienda' AND [/BIC/ZCMMSTA] = 'MZ', 'FP'))
Where PLANT like '%C%' or PLANT like '%T%';
----------------------------------------------------------------------------------
saludos
Hola Agustin, prueba esto en el script de Qlikview:
LOAD
IF(PLANT = 'Centro' AND [/BIC/ZCMMSTA] = 'MZ', 'BC',
IF(PLANT = 'Tienda' AND [/BIC/ZCMMSTA] = 'MZ', 'FP', [/BIC/ZCMMSTA])) AS [/BIC/ZCMMSTA]
FROM yourQVD.qvd (qvd);
Saludos
Juan
Hola Juan:
probe lo siguiente como me sujieres en el lado de QV
Tome una muestra con un Centro por lo que pongo el dato directo quedando de la siguiente manera pero me marca error,
LOAD
if(NUM_CENTRO = 'C001' and STATUS_MATERIAL = 'MZ', 'BC') AS STATUS_MATERIAL,
NUM_CAJAS,
FECHA_INICIO,
MATERIAL,
STATUS_MATERIAL,
CENTRO,
PROVEEDOR,
AÑO_MES,
AÑO,
MES,
V_COMPRA_S,
V_COMPRA_E,
CT,
NUM_MATERIAL,
CLS_MOV,
NUM_CENTRO,
NUM_PROVEEDOR,
ZONA,
REGISTRO
FROM
PERO MEMARCO UN ERROR
Agustin, si lees el error, esta bien claro que te esta marcando que tiene dos campos con el mismo nombre (STATUS_MATERIAL). Elimina uno de ellos y ya.
Saludos
Juan
Juan:
jejeje una disculpa estoy dormido aun
quedolisto y funciono a la perfecion
muchas gracias