Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola, que tal? soy novato en este mundo y agradecería su ayuda con la siguiente interrogante para elaborar unatabla simple en Qlikview:
Tengo una tabla con los siguientes datos, donde el ID se repite de acuerdo a las categorías que tenga registradas.
ID | CATEGORÍA | DESCRIPCIÓN |
---|---|---|
100200 | AAX | CATX4400 |
100200 | ABX | BETX2254 |
100201 | AAX | CATX4405 |
100201 | ABX | BETX2254 |
100203 | ABX | BETX2200 |
100203 | AAX | CATX4408 |
y necesito llegar a ésto, donde el ID sea único:
ID | DESCRIPCIÓN AAX | DESCRIPCIÓN ABX |
---|---|---|
100200 | CATX4400 | BETX2254 |
100201 | CATX4405 | BETX2254 |
100203 | CATX4408 | BETX2200 |
Intenté haciendo un IF en el script para crear los 2 campos nuevos de descripción (AAX y ABX):
IF(CATEGORIA='AAX',DESCRIPCION,' ') AS DESCRIPCIÓN_AAX,
IF(CATEGORIA='ABX',DESCRIPCION,' ') AS DESCRIPCIÓN_ABX,
Pero el problema es que al no cumplirse la condición obtengo un campo vacío, que no permite la unificación de registros según el ID
Podría lograr lo anterior mediante una tabla pivotante, pero es para un informe que tiene una estructura ya definida, donde requiero agregar mas campos luego de las descripciones..
Alguna idea¿?
muchas gracias
si tu tabla es asi de simple puedes intentar con mapping
Tabla:
LOAD ID,
CATEGORÍA,
DESCRIPCIÓN
FROM
Book1.xlsx
(ooxml, embedded labels, table is Sheet2);
Mapping
code:
LOAD ID,
DESCRIPCIÓN
Resident Tabla
where CATEGORÍA = 'AAX';
Mapping
Code1:
LOAD ID,
DESCRIPCIÓN
Resident Tabla
where CATEGORÍA = 'ABX';
Desc:
LOAD Distinct
ID,
ApplyMap('code',ID) AS 'DESCRIPCIÓN AAX',
ApplyMap('Code1',ID) AS 'DESCRIPCIÓN ABX'
Resident Tabla;
drop table Tabla;
de ser en otra manera puedes usar un for
quieres hacer estos cambios en el script o en alguna tabla ?
Idealmente en el script
saludos
si tu tabla es asi de simple puedes intentar con mapping
Tabla:
LOAD ID,
CATEGORÍA,
DESCRIPCIÓN
FROM
Book1.xlsx
(ooxml, embedded labels, table is Sheet2);
Mapping
code:
LOAD ID,
DESCRIPCIÓN
Resident Tabla
where CATEGORÍA = 'AAX';
Mapping
Code1:
LOAD ID,
DESCRIPCIÓN
Resident Tabla
where CATEGORÍA = 'ABX';
Desc:
LOAD Distinct
ID,
ApplyMap('code',ID) AS 'DESCRIPCIÓN AAX',
ApplyMap('Code1',ID) AS 'DESCRIPCIÓN ABX'
Resident Tabla;
drop table Tabla;
de ser en otra manera puedes usar un for
Hola,
también puedes conseguirlo dividiendo la carga y haciendo un join:
Directory;
Tabla:
LOAD ID, DESCRIPCIÓN As [DESCRIPCIÓN AAX]
FROM Book1.xlsx (ooxml, embedded labels, table is Hoja1)
Where CATEGORÍA = 'AAX';
JOIN
LOAD ID, DESCRIPCIÓN As [DESCRIPCIÓN ABX]
FROM Book1.xlsx (ooxml, embedded labels, table is Hoja1)
Where CATEGORÍA = 'ABX';
Un saludo
Gracias Ramón, con Mapping solucione el inconveniente.
Ya que la tabla no era tan simple como el ejemplo, en primer lugar realice MAPPING y LOAD DISTINCT, solo con los campos claves, luego con LEFT JOIN agregue los demás datos a la tabla final
Muchas gracias
Saludos