Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Amigos, estoy intentando que en una carga de datos, me inserte una línea por cada día del intervalo de fechas, en donde Fecha sea cada uno de los días del intervalo y el resto de los campos se repitan. El Script no me da error, pero no me funciona, ¿Alguna sugerencia?.
Muchas gracias !
Resto_incixCenso:
Set a=0;
Do while a<=(ffin-fini)
LOAD
censo as censo_inci,
fini as fini_inci,
ffin as ffin_inci,
fini-a as Fecha,
inci;
LEt a=a+1;
Loop
SQL SELECT
censo,
fini,
ffin,
inci
FROM sestibalsa.dbo.inci
where inci='ID';
Para una mayor comprensión, se trataría de ésto:
| ORIGEN | ||||
| censo | ffin | fini | inci | |
| 1815 | 22-05-16 | 21-05-16 | ID | |
| RESULTADO ESPERADO | ||||
| censo | Fecha | ffin | fini | inci |
| 1815 | 21/05/2016 | 22-05-16 | 21-05-16 | ID |
| 1815 | 22/05/2016 | 22-05-16 | 21-05-16 | ID |
Hola Juan, prueba si con este script te valdría, con los datos que has puesto de ejemplo a mi me ha funcionado:
ORIGEN:
LOAD censo,
Date(fini + IterNo() - 1) as fecha,
ffin,
fini,
inci
While fini + IterNo() - 1 <= ffin;
LOAD censo, Date(Date#(ffin, 'DD-MM-YY')) as ffin, Date(Date#(fini, 'DD-MM-YY')) as fini, inci Inline [
censo, ffin, fini, inci
1815, 22-05-16, 21-05-16, ID
];

Saludos.
Hola Juan,
creo que el motivo es que la ejecución del script no está entrando en el bucle.
Prueba con el siguiente script a ver si se soluciona tu problema:
tmp:
SQL SELECT
censo,
fini,
ffin,
inci
FROM sestibalsa.dbo.inci
where inci='ID';
let num_dias = peek('ffin')-Peek('fini');
Set a=0;
Do while a <= num_dias
Resto_incixCenso:
LOAD
censo as censo_inci,
fini as fini_inci,
ffin as ffin_inci,
fini-$(a) as Fecha,
inci
resident tmp;
LEt a=a+1;
Loop
Drop Table tmp;
Un saludo
Alfredo
Hola Juan, prueba si con este script te valdría, con los datos que has puesto de ejemplo a mi me ha funcionado:
ORIGEN:
LOAD censo,
Date(fini + IterNo() - 1) as fecha,
ffin,
fini,
inci
While fini + IterNo() - 1 <= ffin;
LOAD censo, Date(Date#(ffin, 'DD-MM-YY')) as ffin, Date(Date#(fini, 'DD-MM-YY')) as fini, inci Inline [
censo, ffin, fini, inci
1815, 22-05-16, 21-05-16, ID
];

Saludos.
Muchísimas gracias Alfredo, no me sirve, porque el duplicado lo tiene que hacer por cada fila.
Perfecto, es exactamente lo que estaba buscando, muchísimas gracias Rubén!
![]()
![]()
![]()