Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola Todos, espero me puedan ayudar.
Debido a una migración que tuve de un BasedeDatos, tengo que accesar a dos ODBC con la misma tabla, estas debo unirlas en un mismo QVD, para después realizar un LOAD y manejar los datos, anexo script que realizo.
// Conexión primera tabla hacia archivo TABLA_GENERAL_CDRS.QVD
ODBC CONNECT TO RAORED;
TABLA_GENERAL_CDRS:
QUALIFY *;
SQL SELECT CENTRAL,
FECHA,
HORA,
MID(FECHA,1,4) AS AÑO,
MID(FECHA,5,2) AS MES,
MID(FECHA,7,2) AS DIA,
RECORDTYPE,
REGISTROS
FROM RAORED.`tabcon_cdrs_sum`;
UNQUALIFY *;
STORE TABLA_GENERAL_CDRS INTO TABLA_GENERAL_CDRS.QVD;
DROP TABLE TABLA_GENERAL_CDRS;
// Conexión segunda tabla hacia mismo archivo TABLA_GENERAL_CDRS.QVD
ODBC CONNECT TO RAOREDNEW;
TABLA_GENERAL_CDRS:
QUALIFY *;
SQL SELECT CENTRAL,
FECHA,
HORA,
MID(FECHA,1,4) AS AÑO,
MID(FECHA,5,2) AS MES,
MID(FECHA,7,2) AS DIA,
RECORDTYPE,
REGISTROS
FROM RAORED.`tabcon_cdrs_sum`;
UNQUALIFY *;
STORE TABLA_GENERAL_CDRS INTO TABLA_GENERAL_CDRS.QVD;
DROP TABLE TABLA_GENERAL_CDRS;
/// La segunda carga elimina todo el registro de la primera, necesito la información de ambas para proceder con el LOAD
Tendras un screenshot del mensaje de error o la aplicacion test para probarlo?
Para ser mas pulcro en la parte del codigo puedes hacer esto:
TABLA_GENERAL_CDRS_LOAD:
QUALIFY *;
UNQUALIFY PERIODO, MES;
LOAD
FECHA,
AÑO,
MES,
DIA,
HORA,
MAKEDATE(AÑO,MES,DIA) AS PERIODO,
WEEKDAY(MAKEDATE(AÑO,MES,DIA)) AS DIA_SEMANA,
WEEK(MAKEDATE(AÑO,MES,DIA)) AS SEMANA,
CENTRAL,
RECORDTYPE,
REGISTROS
FROM
D:\Revenue\Personal\TABLA_GENERAL_CDRS.QVD
(qvd);
UNQUALIFY *;
Saludos!
Antes de la segunda tabla usa concatenate y comenta las lineas de store ,qualify y drop de la primera:
// Conexión primera tabla hacia archivo TABLA_GENERAL_CDRS.QVD
ODBC CONNECT TO RAORED;
TABLA_GENERAL_CDRS:
//QUALIFY *;
SQL SELECT CENTRAL,
FECHA,
HORA,
MID(FECHA,1,4) AS AÑO,
MID(FECHA,5,2) AS MES,
MID(FECHA,7,2) AS DIA,
RECORDTYPE,
REGISTROS
FROM RAORED.`tabcon_cdrs_sum`;
UNQUALIFY *;
//STORE TABLA_GENERAL_CDRS INTO TABLA_GENERAL_CDRS.QVD;
//DROP TABLE TABLA_GENERAL_CDRS;
// Conexión segunda tabla hacia mismo archivo TABLA_GENERAL_CDRS.QVD
ODBC CONNECT TO RAOREDNEW;
//TABLA_GENERAL_CDRS:
//QUALIFY *;
Concatenate (TABLA_GENERAL_CDRS)
SQL SELECT CENTRAL,
FECHA,
HORA,
MID(FECHA,1,4) AS AÑO,
MID(FECHA,5,2) AS MES,
MID(FECHA,7,2) AS DIA,
RECORDTYPE,
REGISTROS
FROM RAORED.`tabcon_cdrs_sum`;
//UNQUALIFY *;
STORE TABLA_GENERAL_CDRS INTO TABLA_GENERAL_CDRS.QVD;
DROP TABLE TABLA_GENERAL_CDRS;
Gracias Raul,
la union de ambas tablas al QVD la realiza correctamente,pero después hago un LOAD para relacionar muchas tablas en base a Periodo ( fecha ) y mes , esta ya no reconoce los campos
TABLA_GENERAL_CDRS_LOAD:
QUALIFY *;
UNQUALIFY PERIODO, MES;
LOAD TABLA_GENERAL_CDRS.FECHA,
TABLA_GENERAL_CDRS.AÑO,
TABLA_GENERAL_CDRS.MES AS MES,
TABLA_GENERAL_CDRS.DIA,
TABLA_GENERAL_CDRS.HORA,
MAKEDATE(TABLA_GENERAL_CDRS.AÑO,TABLA_GENERAL_CDRS.MES,TABLA_GENERAL_CDRS.DIA) AS PERIODO,
WEEKDAY(MAKEDATE(TABLA_GENERAL_CDRS.AÑO,TABLA_GENERAL_CDRS.MES,TABLA_GENERAL_CDRS.DIA)) AS DIA_SEMANA,
WEEK(MAKEDATE(TABLA_GENERAL_CDRS.AÑO,TABLA_GENERAL_CDRS.MES,TABLA_GENERAL_CDRS.DIA)) AS SEMANA,
TABLA_GENERAL_CDRS.CENTRAL,
TABLA_GENERAL_CDRS.RECORDTYPE,
TABLA_GENERAL_CDRS.REGISTROS
FROM
D:\Revenue\Personal\TABLA_GENERAL_CDRS.QVD
(qvd);
UNQUALIFY *;
Tendras un screenshot del mensaje de error o la aplicacion test para probarlo?
Para ser mas pulcro en la parte del codigo puedes hacer esto:
TABLA_GENERAL_CDRS_LOAD:
QUALIFY *;
UNQUALIFY PERIODO, MES;
LOAD
FECHA,
AÑO,
MES,
DIA,
HORA,
MAKEDATE(AÑO,MES,DIA) AS PERIODO,
WEEKDAY(MAKEDATE(AÑO,MES,DIA)) AS DIA_SEMANA,
WEEK(MAKEDATE(AÑO,MES,DIA)) AS SEMANA,
CENTRAL,
RECORDTYPE,
REGISTROS
FROM
D:\Revenue\Personal\TABLA_GENERAL_CDRS.QVD
(qvd);
UNQUALIFY *;
Saludos!
Gracias Raul,
Al eliminar el nombre de la Tabla, cargó la información correctamente, el LOAD lo tenía así porque cargaba varias tablas y load con campos similares para poder identificarlas.
Saludos
De nada Alejandro!.
Recuerda marcar como contestada la pregunta dando clic en "Correct answer"
Saludos!
RAMZ