Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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';
Uma pergunta (pode até ser idiota), mas esse campo DT.DT_EMISSAO existe na base mesmo?
Oi Thiago...Sim esse campo DT_EMISSAO existe, inclusive se eu não colocar o LOAD ele trás esse campo do banco.
Att
André Tonini
Sendo assim, faça um teste:
VIAGEM_TEMP:
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';
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
Resident VIAGEM_TEMP;
DROP TABLE VIAGEM_TEMP;
Olá Thiago, bom dia.
Então fiz o teste e retornou o erro como segue ilustração.
att,
André Tonini
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
Olá Ricardo,
Muito obrigado era isso mesmo, o que acontece é que o campo DT_EMISSAO estava sendo carregado como dt_emissao(minusculo) dai fiz essa substituição e deu certo!
Valeu pela força.
Att,
André Tonini
Maravilha.
Enjoy.