Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
airobles
Contributor II
Contributor II

Como cargar dos Tablas al mismo QVD

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

1 Solution

Accepted Solutions
Not applicable

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!

View solution in original post

5 Replies
Not applicable

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;

airobles
Contributor II
Contributor II
Author

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 *;

Not applicable

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!

airobles
Contributor II
Contributor II
Author

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

Not applicable

De nada Alejandro!.

Recuerda marcar como contestada la pregunta dando clic en "Correct answer"

Saludos!

RAMZ