- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 12 anos, 11 meses atrás por rman.
-
AutorPosts
-
29 de dezembro de 2011 às 7:39 pm #102345DilsoParticipante
Pessoal, Boa Tarde.
Preciso fazer um left join em três tabelas. Como eu faço para substituir o select abaixo ?
Obrigado!
SELECT CP.HOLDING, CP.MATRIZ, CP.FILIAL, CP.TP_NF, CP.SITUACAO,
NVL(CP.MODELO_NF,’ ‘) MODELO_NF, CP.EMITENTE, CP.PARTICIPANTE, CP.NF_DOC, NVL(CP.SERIE,’ ‘) SERIE,
NVL(CP.SUBSERIE,’ ‘) SUBSERIE, TO_DATE (CP.DT_EMISSAO, ‘DD/MM/YYYY’) DT_EMISSAO,
TO_DATE (CP.DT_SISTEMA, ‘DD/MM/YYYY’) DT_SISTEMA,
TO_DATE (CP.DT_SAIDA, ‘DD/MM/YYYY’) DT_SAIDA, CP.TP_PAGAMENTO,
CP.RESP_FRETE, CP.CHAVE_NFE, CP.VLR_DOC, CP.VLR_MER_SERV,
CP.VLR_DESC VLR_DESC_CP, CP.ABAT_NTRIBUT, CP.VLR_FRETE, CP.VLR_SEGURO,
CP.VLR_DESPESAS, CP.TP_FRETE,CP.NFTYPE,CP.DOCNUM,
IT.CFOP, IT.CFOP_DIG,SUM(REPLACE(IT.PESO_LIQUIDO,’.’,’,’)) PESO_LIQUIDO, SUM(REPLACE(IT.PESO_BRUTO,’.’,’,’)) PESO_BRUTO, PT.TIPO, PT.NOME, PT.COD_PAIS,
PT.CNPJ, PT.CPF, PT.IE, PT.COD_MUN,PT.COD_UF,PT.SUFRAMA, PT.ENDERECO,PT.CEP,PT.NUM,
SUBSTR(PT.COMPL,1,10) COMPL, PT.BAIRRO
FROM CF_NF_CAPA CP, CF_NF_ITEM IT, CF_PARTICIPANTE PT
WHERE CP.HOLDING = IT.HOLDING
AND CP.MATRIZ = IT.MATRIZ
AND CP.FILIAL = IT.FILIAL
AND CP.TP_NF = IT.TP_NF
AND CP.SITUACAO = IT.SITUACAO
AND NVL(CP.MODELO_NF,’ ‘) = NVL(IT.MODELO_NF,’ ‘)
AND CP.EMITENTE = IT.EMITENTE
AND CP.PARTICIPANTE = IT.PARTICIPANTE
AND CP.NF_DOC = IT.NF_DOC
AND NVL(CP.SERIE,’ ‘) = NVL(IT.SERIE,’ ‘)
AND NVL(CP.SUBSERIE,’ ‘) = NVL(IT.SUBSERIE,’ ‘)
AND TO_DATE (CP.DT_EMISSAO, ‘DD/MM/YYYY’) = TO_DATE (IT.DT_EMISSAO,
‘DD/MM/YYYY’)
AND TO_DATE (CP.DT_SISTEMA, ‘DD/MM/YYYY’) = TO_DATE (IT.DT_SISTEMA,
‘DD/MM/YYYY’)
AND CP.PARTICIPANTE = PT.COD_PART
GROUP BY CP.HOLDING, CP.MATRIZ, CP.FILIAL, CP.TP_NF, CP.SITUACAO,
CP.MODELO_NF, CP.EMITENTE, CP.PARTICIPANTE, CP.NF_DOC,CP.SERIE,
CP.SUBSERIE,CP.DT_EMISSAO,CP.DT_SISTEMA,DT_SAIDA, CP.TP_PAGAMENTO,
CP.RESP_FRETE, CP.CHAVE_NFE, CP.VLR_DOC, CP.VLR_MER_SERV,
CP.VLR_DESC, CP.VLR_DESC, CP.ABAT_NTRIBUT, CP.VLR_FRETE, CP.VLR_SEGURO,
CP.VLR_DESPESAS, CP.TP_FRETE,CP.NFTYPE,CP.DOCNUM,
IT.CFOP, IT.CFOP_DIG, PT.TIPO, PT.NOME, PT.COD_PAIS,
PT.CNPJ, PT.CPF, PT.IE, PT.COD_MUN,PT.COD_UF,PT.SUFRAMA, PT.ENDERECO,PT.CEP,PT.NUM,
COMPL, PT.BAIRRO;29 de dezembro de 2011 às 7:55 pm #102346rmanParticipanteBasicamente é só mudar as condições de ligação de lugar:
SELECT CP.HOLDING,
CP.MATRIZ,
CP.FILIAL,
CP.TP_NF,
CP.SITUACAO,
NVL(CP.MODELO_NF, ' ') MODELO_NF,
CP.EMITENTE,
CP.PARTICIPANTE,
CP.NF_DOC,
NVL(CP.SERIE, ' ') SERIE,
NVL(CP.SUBSERIE, ' ') SUBSERIE,
TO_DATE(CP.DT_EMISSAO, 'DD/MM/YYYY') DT_EMISSAO,
TO_DATE(CP.DT_SISTEMA, 'DD/MM/YYYY') DT_SISTEMA,
TO_DATE(CP.DT_SAIDA, 'DD/MM/YYYY') DT_SAIDA,
CP.TP_PAGAMENTO,
CP.RESP_FRETE,
CP.CHAVE_NFE,
CP.VLR_DOC,
CP.VLR_MER_SERV,
CP.VLR_DESC VLR_DESC_CP,
CP.ABAT_NTRIBUT,
CP.VLR_FRETE,
CP.VLR_SEGURO,
CP.VLR_DESPESAS,
CP.TP_FRETE,
CP.NFTYPE,
CP.DOCNUM,
IT.CFOP,
IT.CFOP_DIG,
SUM(REPLACE(IT.PESO_LIQUIDO, '.', ',')) PESO_LIQUIDO,
SUM(REPLACE(IT.PESO_BRUTO, '.', ',')) PESO_BRUTO,
PT.TIPO,
PT.NOME,
PT.COD_PAIS,
PT.CNPJ,
PT.CPF,
PT.IE,
PT.COD_MUN,
PT.COD_UF,
PT.SUFRAMA,
PT.ENDERECO,
PT.CEP,
PT.NUM,
SUBSTR(PT.COMPL, 1, 10) COMPL,
PT.BAIRRO
FROM CF_NF_CAPA CP
LEFT JOIN CF_NF_ITEM IT ON CP.HOLDING = IT.HOLDING AND CP.MATRIZ = IT.MATRIZ AND CP.FILIAL = IT.FILIAL AND CP.TP_NF = IT.TP_NF AND CP.SITUACAO = IT.SITUACAO AND NVL(CP.MODELO_NF, ' ') = NVL(IT.MODELO_NF, ' ') AND CP.EMITENTE = IT.EMITENTE AND CP.PARTICIPANTE = IT.PARTICIPANTE AND CP.NF_DOC = IT.NF_DOC AND NVL(CP.SERIE, ' ') = NVL(IT.SERIE, ' ') AND NVL(CP.SUBSERIE, ' ') = NVL(IT.SUBSERIE, ' ') AND TO_DATE(CP.DT_EMISSAO, 'DD/MM/YYYY') = TO_DATE(IT.DT_EMISSAO, 'DD/MM/YYYY') AND TO_DATE(CP.DT_SISTEMA, 'DD/MM/YYYY') = TO_DATE(IT.DT_SISTEMA, 'DD/MM/YYYY')
LEFT JOIN CF_PARTICIPANTE PT ON CP.PARTICIPANTE = PT.COD_PART
GROUP BY CP.HOLDING,
CP.MATRIZ,
CP.FILIAL,
CP.TP_NF,
CP.SITUACAO,
CP.MODELO_NF,
CP.EMITENTE,
CP.PARTICIPANTE,
CP.NF_DOC,
CP.SERIE,
CP.SUBSERIE,
CP.DT_EMISSAO,
CP.DT_SISTEMA,
DT_SAIDA,
CP.TP_PAGAMENTO,
CP.RESP_FRETE,
CP.CHAVE_NFE,
CP.VLR_DOC,
CP.VLR_MER_SERV,
CP.VLR_DESC,
CP.VLR_DESC,
CP.ABAT_NTRIBUT,
CP.VLR_FRETE,
CP.VLR_SEGURO,
CP.VLR_DESPESAS,
CP.TP_FRETE,
CP.NFTYPE,
CP.DOCNUM,
IT.CFOP,
IT.CFOP_DIG,
PT.TIPO,
PT.NOME,
PT.COD_PAIS,
PT.CNPJ,
PT.CPF,
PT.IE,
PT.COD_MUN,
PT.COD_UF,
PT.SUFRAMA,
PT.ENDERECO,
PT.CEP,
PT.NUM,
COMPL,
PT.BAIRRO;
-
AutorPosts
- Você deve fazer login para responder a este tópico.