Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buenas noches,
¿Alguien podría decirme como puedo generar automáticamente diferentes ficheros qvd's (1 por país) teniendo en cuenta el campo país de una tabla ya carga anteriormente?
Muchas gracias
Hola Eduardo:
Disculpa me faltaron un par de cosillas:
Añade dentro del bucle
vPais39 = chr(39) & vPais & chr(39)
y modfica la SELECT
SQL SELECT *
FROM PROPUESTAS.dbo."ESTADISTICA_PERSO_ITEM" with (nolock)
Where LAND1 = $(vPais39);
Saludos
Joaquín
Hola Eduardo:
Necesitas tres partes
1) Un load de tu tabla países, ésta no te la describo porque ya la tienes
2) Una rutina con dos partes, load de hechos + store
3) Un bucle por cada país
Saludos
Joaquín
Aquí tienes el bucle, asumo que tu campo País pertenece a la tabla Países
vNumeroFilasPaises = NoOfRows('Paises');
FOR i = 1 to $(vNumeroFilasPaises )
vPais = Peek('Pais', $(i)-1, 'Paises');
call CargaPaises;
i = i +1;
Next;
Aquí tienes la rutina a ejecutar por el bucle.
SUB CargaPaises;
LET vPath = ... aquí construyes tu path como te parezca apropiado
LET vQVDName = vPath & 'TuNombredeArchivo_' & vPais & '.qvd';
TusHechos:
LOAD *
SELECT *
Where PaisHechos = $(vPais)
STORE TusHechos into (vQVDName) (qvd);
DROP TABLE TusHechos;
ENDSUB;
He escrito en varios mensajes porque si el código está troceado será más fácil responder a tus dudas .
Por cierto, esto es muy importante: la rutina (SUB-ENDSUB) debe estar en el script antes que el CALL.
Espero que esto te sirva de ayuda
Joaquín
Buenos días,
Gracias por la respuesta. He probado lo que me han enviado pero me salta el mensaje de error:
"SQL##f - SqlState: S0022, ErrorCode: 207, ErrorMsg: [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Invalid column name 'CL'.
SQL SELECT *
FROM PROPUESTAS.dbo."ESTADISTICA_PERSO_ITEM" with (nolock)
Where LAND1 = CL"
El código que tengo escrito es:
TABLA_PAISES:
LOAD
LAND1 as COD_PAIS;
SQL SELECT DISTINCT LAND1
FROM PROPUESTAS.dbo."PROPUESTA_CABECERA" with (nolock)
WHERE LAND1 IN ('CL','CO');
SUB CargaPaises;
LET vPath = 'D:\';
LET vQVDName = vPath & 'TuNombredeArchivo_' & vPais & '.qvd';
Tabla_detalle:
LOAD *;
SQL SELECT *
FROM PROPUESTAS.dbo."ESTADISTICA_PERSO_ITEM" with (nolock)
Where LAND1 = $(vPais);
STORE Tabla_detalle into $(vQVDName);
DROP TABLE Tabla_detalle;
ENDSUB;
vNumeroFilasPaises = NoOfRows('TABLA_PAISES');
FOR i = 1 to $(vNumeroFilasPaises)
vPais = Peek('COD_PAIS', $(i)-1, 'TABLA_PAISES');
call CargaPaises;
i = i +1;
Next;
Si necesitas algo mas no dudes en pedírmelo.
Gracias por tu ayuda
Hola Eduardo:
Disculpa me faltaron un par de cosillas:
Añade dentro del bucle
vPais39 = chr(39) & vPais & chr(39)
y modfica la SELECT
SQL SELECT *
FROM PROPUESTAS.dbo."ESTADISTICA_PERSO_ITEM" with (nolock)
Where LAND1 = $(vPais39);
Saludos
Joaquín
Ahora funcionó perfectamente.
Muchas gracias
De nada.
Si consideras que alguna respuesta te ha sido útil, márcala como tal
Hasta la próxima