Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
andre_tonini
Creator II
Creator II

Load no Postgresql

Pessoal,

       O banco de dados foi alterado, de Firebird para Postgresql porém estou revendo os cenários para adequação mas fiquei na duvida pois utilizo no LOAD*, o calendário mas não funciona o Load*, no postgresql - alguem sabe como resolver?

       

ODBC CONNECT TO PostgreSQL30;

// ------- Viagem --------- //

LOAD *,

    YEAR(DT_EMISSAO) AS ANO_FAT,

    MONTH(DT_EMISSAO) AS MES_FAT,    

    DAY(DT_EMISSAO) AS DIA_FAT,

    DATE(DT_EMISSAO) AS DATA_FAT;

       

SQL SELECT

A.NR_VIAGEM,

A.NR_VIAGEM_SEQ,

A.CD_VEICULO,

A.CD_MOTORISTA,

A.DT_SAIDA,

A.DT_RETORNO,

A.KM_SAIDA,

A.KM_RETORNO,

A.MM_OBSERVACAO,

A.FL_BLOQUEADA,

A.HM_SAIDA,

A.HM_RETORNO,

B.NM_MOTORISTA,

C.NR_ORDEM,

C.PC_COMISSAO,

C.VL_BASE_COMISSAO,

C.VL_COMISSAO,

D.CD_SITUACAO,

D.VL_TOTAL AS VL_FRETE,

D.CD_LOC_COLETA AS LOCAL_COLETA,

D.CD_LOC_EMISSAO,

D.CD_LOC_ENTREGA AS LOCAL_CHEGADA,

D.QT_PESO_FRETE,

D.CD_NATCARGA,

D.DT_EMISSAO,

D.NR_CONHEC AS NR_CONHEC_VIAG,

D.SR_CONHEC AS SR_CONHEC_VIAG

FROM VIAGEM A LEFT JOIN MOTORISTA B ON

              A.CD_MOTORISTA = B.CD_MOTORISTA

             

              LEFT OUTER JOIN CONHECTOVM C ON

              A.NR_VIAGEM = C.NR_VIAGEM AND

              A.NR_VIAGEM_SEQ = C.NR_VIAGEM_SEQ

             

              LEFT OUTER JOIN CONHECTO D ON

              C.NR_ORDEM = D.NR_ORDEM   

                                    

WHERE D.DT_EMISSAO > '31.12.2009' AND D.CD_SITUACAO <> '3';

Labels (1)
1 Solution

Accepted Solutions
Ricardo_Gerhard
Employee
Employee

Bom dia Andre,

   Faça a carga como comentado com SQL Select e depois o load residente com o nome do campo carregado.

   Talvez ele esteja sendo carregado como D.DT_EMISSAO

Ricardo Gerhard
OEM Solution Architect
LATAM

View solution in original post

16 Replies
Ricardo_Gerhard
Employee
Employee

Boa tarde Andre,

   Já chegaste a fazer o seguinte teste?

- Somente SQL SELECT sem o LOAD;

- Posterior um concatenate para criar os campos adicionais;

Ricardo Gerhard
OEM Solution Architect
LATAM
Thiago_Justen_

Talvez assim:

// ------- Viagem --------- //

LOAD *,

    YEAR(DT_EMISSAO) AS ANO_FAT,

    MONTH(DT_EMISSAO) AS MES_FAT,   

    DAY(DT_EMISSAO) AS DIA_FAT,

    DATE(DT_EMISSAO) AS DATA_FAT;

      

SQL SELECT

A.NR_VIAGEM,

A.NR_VIAGEM_SEQ,

A.CD_VEICULO,

A.CD_MOTORISTA,

A.DT_SAIDA,

A.DT_RETORNO,

A.KM_SAIDA,

A.KM_RETORNO,

A.MM_OBSERVACAO,

A.FL_BLOQUEADA,

A.HM_SAIDA,

A.HM_RETORNO,

B.NM_MOTORISTA,

C.NR_ORDEM,

C.PC_COMISSAO,

C.VL_BASE_COMISSAO,

C.VL_COMISSAO,

D.CD_SITUACAO,

D.VL_TOTAL AS VL_FRETE,

D.CD_LOC_COLETA AS LOCAL_COLETA,

D.CD_LOC_EMISSAO,

D.CD_LOC_ENTREGA AS LOCAL_CHEGADA,

D.QT_PESO_FRETE,

D.CD_NATCARGA,

D.DT_EMISSAO AS DT_EMISSAO,

D.NR_CONHEC AS NR_CONHEC_VIAG,

D.SR_CONHEC AS SR_CONHEC_VIAG

FROM VIAGEM A LEFT JOIN MOTORISTA B ON

              A.CD_MOTORISTA = B.CD_MOTORISTA

            

              LEFT OUTER JOIN CONHECTOVM C ON

              A.NR_VIAGEM = C.NR_VIAGEM AND

              A.NR_VIAGEM_SEQ = C.NR_VIAGEM_SEQ

            

              LEFT OUTER JOIN CONHECTO D ON

              C.NR_ORDEM = D.NR_ORDEM  

                                   

WHERE D.DT_EMISSAO > '31.12.2009' AND D.CD_SITUACAO <> '3';

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
andre_tonini
Creator II
Creator II
Author

Ola Ricardo,

     Sim, sem o LOAD funciona a carga vou tentar concatenar para verificar.

Att,

André Tonini

andre_tonini
Creator II
Creator II
Author

Thiago,

      Boa tarde, pois é dessa forma havia tentando mas dá erro não encontra o campo DT_EMISSAO


      Att,


      André Tonini

Ricardo_Gerhard
Employee
Employee

Ok Andre, faça isso.

Pode ser o entendimento do nome do campo durante a carga. Possivelmente deverias chamar como d.dt_emissao.

Recomendo o concatenar posterior para facilitar inclusive em outras plataformas.

Ricardo Gerhard
OEM Solution Architect
LATAM
Thiago_Justen_

Consegue printar a tela de erro?

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
andre_tonini
Creator II
Creator II
Author

Oi Thiago,

     segue abaixo imagem...

1.png

Thiago_Justen_

Teste:

// ------- Viagem --------- //

LOAD *,

    YEAR(DT_EMISSAO) AS ANO_FAT,

    MONTH(DT_EMISSAO) AS MES_FAT,   

    DAY(DT_EMISSAO) AS DIA_FAT,

    DATE(DT_EMISSAO) AS DATA_FAT;

LOAD

          *,

          D.DT_EMISSAO AS DT_EMISSAO;      

SQL SELECT

A.NR_VIAGEM,

A.NR_VIAGEM_SEQ,

A.CD_VEICULO,

A.CD_MOTORISTA,

A.DT_SAIDA,

A.DT_RETORNO,

A.KM_SAIDA,

A.KM_RETORNO,

A.MM_OBSERVACAO,

A.FL_BLOQUEADA,

A.HM_SAIDA,

A.HM_RETORNO,

B.NM_MOTORISTA,

C.NR_ORDEM,

C.PC_COMISSAO,

C.VL_BASE_COMISSAO,

C.VL_COMISSAO,

D.CD_SITUACAO,

D.VL_TOTAL AS VL_FRETE,

D.CD_LOC_COLETA AS LOCAL_COLETA,

D.CD_LOC_EMISSAO,

D.CD_LOC_ENTREGA AS LOCAL_CHEGADA,

D.QT_PESO_FRETE,

D.CD_NATCARGA,

D.DT_EMISSAO,

D.NR_CONHEC AS NR_CONHEC_VIAG,

D.SR_CONHEC AS SR_CONHEC_VIAG

FROM VIAGEM A LEFT JOIN MOTORISTA B ON

              A.CD_MOTORISTA = B.CD_MOTORISTA

            

              LEFT OUTER JOIN CONHECTOVM C ON

              A.NR_VIAGEM = C.NR_VIAGEM AND

              A.NR_VIAGEM_SEQ = C.NR_VIAGEM_SEQ

            

              LEFT OUTER JOIN CONHECTO D ON

              C.NR_ORDEM = D.NR_ORDEM  

                                   

WHERE D.DT_EMISSAO > '31.12.2009' AND D.CD_SITUACAO <> '3';

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
andre_tonini
Creator II
Creator II
Author

Ola Thiago,

        Fiz o teste e deu erro tbm...acusando como segue imagem.

1.png