Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: 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