Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola Me llamo reynaldo,
Bueno yo tengo esta tabla
FECHA | COD1 | COD2 | TIPO |
19961101 | X1 | 6433 | 1 |
19971007 | X1 | 6433 | 1 |
20060101 | X1 | 6433 | 1 |
20101001 | X1 | 6433 | 1 |
20101101 | X1 | 6433 | 1 |
20101201 | X1 | 6433 | 1 |
20120208 | X1 | 6433 | 1 |
19961231 | X1 | 6433 | 2 |
19981231 | X1 | 6433 | 2 |
20060131 | X1 | 6433 | 2 |
20101031 | X1 | 6433 | 2 |
20101130 | X1 | 6433 | 2 |
20101231 | X1 | 6433 | 2 |
20120309 | X1 | 6433 | 2 |
19970601 | X1 | 16532 | 1 |
19990401 | X1 | 16532 | 1 |
19990501 | X1 | 16532 | 1 |
19990601 | X1 | 16532 | 1 |
19990901 | X1 | 16532 | 1 |
20010803 | X1 | 16532 | 1 |
19970930 | X1 | 16532 | 2 |
19990430 | X1 | 16532 | 2 |
19990531 | X1 | 16532 | 2 |
19990630 | X1 | 16532 | 2 |
20000229 | X1 | 16532 | 2 |
20011118 | X1 | 16532 | 2 |
20040201 | X3 | 22223 | 1 |
20040301 | X3 | 22223 | 1 |
20040401 | X3 | 22223 | 1 |
20040501 | X3 | 22223 | 1 |
20040601 | X3 | 22223 | 1 |
20040229 | X3 | 22223 | 2 |
20040331 | X3 | 22223 | 2 |
20040430 | X3 | 22223 | 2 |
20040531 | X3 | 22223 | 2 |
20030201 | X4 | 84607 | 1 |
20090701 | X4 | 84607 | 1 |
20041231 | X4 | 84607 | 2 |
20050101 | X5 | 97068 | 1 |
20050701 | X5 | 125 | 1 |
20050801 | X5 | 97068 | 1 |
20050228 | X5 | 97068 | 2 |
20050731 | X5 | 125 | 2 |
y quisiera que se juntara y quede como la tabla anterior, pero cuando hago el JOIN LEFT se genera valores de mas que no me sirven
El campo tipo me hace distincion de fecha inicio(1) y fecha fin(2)
FECHA_INICIO | FECHA_FIN | COD1 | COD2 |
19961101 | 19961231 | X1 | 6433 |
19971007 | 19981231 | X1 | 6433 |
20060101 | 20060131 | X1 | 6433 |
20101001 | 20101031 | X1 | 6433 |
20101101 | 20101130 | X1 | 6433 |
20101201 | 20101231 | X1 | 6433 |
20120208 | 20120309 | X1 | 6433 |
19970601 | 19970930 | X1 | 16532 |
19990401 | 19990430 | X1 | 16532 |
19990501 | 19990531 | X1 | 16532 |
19990601 | 19990630 | X1 | 16532 |
19990901 | 20000229 | X1 | 16532 |
20010803 | 20011118 | X1 | 16532 |
20040201 | 20040229 | X3 | 22223 |
20040301 | 20040331 | X3 | 22223 |
20040401 | 20040430 | X3 | 22223 |
20040501 | 20040531 | X3 | 22223 |
20040601 | - | X3 | 22223 |
20030201 | 20041231 | X4 | 84607 |
20090701 | - | X4 | 84607 |
20050101 | 20050228 | X5 | 97068 |
20050701 | 20050731 | X5 | 125 |
20050801 | - | X5 | 97068 |
este fue el script que use, lo necesito en script xq es parte de un proceso y necesito que los datos se llenes de esa manera.
DEMO:
NoConcatenate
LOAD
FECHA as FECHA_INI,
COD1,
COD2
FROM
[XXX.QVD] (qvd)
where TIPO=1;
DEMO1:
NoConcatenate
Load
AutoNumber(COD1&COD2, 'Ctr1') as Nro,
FECHA_INI,
COD1,
COD2
resident DEMO
order by FECHA_INI ASC;
DROP table DEMO;
DEMO2:
NoConcatenate
LOAD
FECHA AS FECHA_FIN,
COD1,
COD2
FROM
[xxx.QVD] (qvd)
where TIPO=2;
DEMO_2:
NoConcatenate
Load
AutoNumber(COD1&COD2,'Ctr2') as Nro,
FECHA_FIN,
COD1,
COD2
resident DEMO2 order by FECHA_FIN ASC;
DROP table DEMO2;
final1:
NoConcatenate
LOAD Nro,
FECHA_INI,
COD1,
COD2
resident DEMO1;
left join
NoConcatenate
LOAD Nro,
FECHA_FIN,
COD1,
COD2
resident DEMO_2;
DROP table DEMO1;
DROP table DEMO_2;
espero q alguien me pueda ayudar
Reynaldo, entiendo que esto te puede ayudar.
Tab2:
NoConcatenate
Load Cod1,Cod2,
Cod1&Cod2&Tipo as Cod12Tipo,
Date(Date#(Fecha,'YYYYMMDD')) as Fecha,
Tipo,
If(Previous(Cod1&Cod2&Tipo)=Cod1&Cod2&Tipo,Peek(Fila,-1)+1,1) as Fila
Resident Tab1
Order By Cod1, Cod2, Tipo, Fecha;
MapTipo2:
Mapping
Load Cod1&Cod2&Fila,
Fecha
Resident Tab2
Where Tipo = 2;
Tab3:
NoConcatenate
Load Cod1, Cod2,
Cod12Tipo,
Fecha as FechaInicio,
ApplyMap('MapTipo2',Cod1&Cod2&Fila,Null()) as FechaFinal
Resident Tab2
Where Tipo = 1;
Drop Table Tab2;
Drop Table Tab1;
Reynaldo, entiendo que esto te puede ayudar.
Tab2:
NoConcatenate
Load Cod1,Cod2,
Cod1&Cod2&Tipo as Cod12Tipo,
Date(Date#(Fecha,'YYYYMMDD')) as Fecha,
Tipo,
If(Previous(Cod1&Cod2&Tipo)=Cod1&Cod2&Tipo,Peek(Fila,-1)+1,1) as Fila
Resident Tab1
Order By Cod1, Cod2, Tipo, Fecha;
MapTipo2:
Mapping
Load Cod1&Cod2&Fila,
Fecha
Resident Tab2
Where Tipo = 2;
Tab3:
NoConcatenate
Load Cod1, Cod2,
Cod12Tipo,
Fecha as FechaInicio,
ApplyMap('MapTipo2',Cod1&Cod2&Fila,Null()) as FechaFinal
Resident Tab2
Where Tipo = 1;
Drop Table Tab2;
Drop Table Tab1;
Hola Reynaldo, se me ocurre esta forma de hacerlo:
TMP:
LOAD
If(TIPO = 1, FECHA) AS FECHA_INICIO,
If(TIPO = 2, FECHA) AS FECHA_FIN,
COD1,
COD2,
If(Previous(COD1) = COD1 and Previous(COD2) = COD2 and Previous(TIPO) = TIPO, Peek(Nro) + 1, 1) AS Nro
FROM [xxx.QVD] (qvd);
Demo:
NoConcatenate
LOAD
Min(FECHA_INICIO) AS FECHA_INICIO,
Max(FECHA_FIN) AS FECHA_FIN,
COD1,
COD2,
Nro
Resident TMP
Group By COD1, COD2, Nro;
DROP Table TMP;