Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Tengo una tabla de la cual anexo un ejemplo (en excel) ademas de una tabla de como se ve en qv
lo que busco es hacer que se repita en la columna @1 la Reg1 en todos lo campos hasta topar con la Reg 2 y que se repita Reg2 en todos los campos hasta topar con Reg3 y así sucesivamente sucesivamente, utilizo la función peek para elegir el campo anterior y repetirlo, pero no logro que quede correctamente
alguna idea de como solucionarlo, en algunos ejemplos, he visto el uso de una tabla residente para lograrlo, pero no se muy bien como
R1 | Fecha | @1 | @2 |
---|---|---|---|
1 | 20017 | Reg1 | 464556 |
2 | 2017 | aerf | 72452 |
3 | 2017 | arsdg | 24524 |
. . | 2017 | abcd | 275242 |
n | 2017 | Reg2 | 2452450 |
Eduardo,
Puedes mandar un ejemplo de como estan tus datos en un excel, ya que depende mucho de eso para poder solucionarlo.
El excel q mandas adjunto no trae la tabla de ejemplo que mencionas.
Saludos.
Actualice el archivo de .xlsx, espero sirva
Buenos Días,
Eduardo,
Te adjunto el archivo de Qlik con la forma en como solucione tu problema, espero te sea de utilidad.
La idea es Recorrer con un ciclo todos los registros de la tabla, identificar cada que se tenga el valor de "REGION" en el registro y persistirlo como valor para los siguientes registros, hasta que nuevamente se encuentre la palabra "REGION".
Saludos.
Es una muy buena solución, pero al momento de aplicarlo a una tabla con miles de registros el tiempo de carga es bastante largo y por lo tanto poco eficiente. No se si se pueda aplicar de forma diferente ese método o buscar otro camino
Estimado:
Adjunto alternativa a la solución de Bertin Abel elimando el bucle de carga:
TablaA:
LOAD * Inline [
R1,Fecha,@1,@2
1,2017,REGION 01,464556
2,2017,aerf,72452
3,2017,arsdg,24524
4,2017,abcd,275242
5,2017,REGION 02,2452450
6,2017,ertfd,562541
7,2017,sdfrd,859654
8,2017,ccfgb,857423
9,2017,REGION 03,2452450
10,2017,rsxcfd,562541
11,2017,asdrd,859654
12,2017,ascfrt,857423
];
NoConcatenate
TablaB:
LOAD
R1,
Fecha,
@1,
@2,
if(Index(@1,'REGION')>0, @1 ,Peek('Region', -1)) as Region
Resident TablaA;
Drop table TablaA;
Un saludo,
Juan P. Barroso