Usuário com melhor resposta
Trazer informação de duas tabela em um campo de uma outra tabela via select

Pergunta
-
Bom,
Pessoal,
Preciso buscar umas informações em uma tabela de Doc de Entrada de NF através de Select sql, onde a tabela é chamada de SD1 (tabela de entrada de NF).
Tenho cadastro de Cliente e Fornecedor que são duas tabela chamadas SA1 (Cliente) e SA2 (Fornecedor) que alimenta a SD1 com as NF´s de Devolução que são as entradas.
Na SD1 quando lança a NF Cliente ou Fornecedor ele busca o cliente na SA1 e fornecedor na SA2 dependendo da Nf, Porem preciso criar um Select que me traga tanto o cliente como o fornecedor dependendo da NF, em um campo só na SD1 do select que quero montar.
Fiz esse select mais não consegui as informações desejada
SA1 => CodCli NomeCli
0175 Friogofrio Armazenagem
SA2 => CodCli NomeCli
0175 Equipamentos Veiculos
SD1 => CodCli NF
0175 000015 (esse é cliente)
0175 000230 (esse é cliente)
0175 1520 (esse é fornecedor)
SELECT D1_FILIAL AS FILIAL,
D1_COD AS CODIGO_PRODUTO,
D1_XDESCRI AS DESC_PRODUTO,
D1_FORNECE AS COD_CLI_FORN,
A1_NOME AS NOME_CLIENTE,
A2_NOME AS NOME_FORNECEDOR,
D1_DOC AS NF,
to_date(to_date(D1_EMISSAO,'YYYYmmdd'), 'dd/mm/YYYY') AS EMISSAO,
D1_SERIE AS SERIE,
D1_QUANT AS QUANT,
D1_TOTAL AS TOTAL,
D1_VALICM AS ICMS,
D1_TES AS TES,
D1_TIPO AS TIPO,
D1_TP AS TIPOPROD,
D1_LOCAL AS ARMAZEM
FROM SA1010 SA1,
SA2010 SA2,
SD1010 SD1
WHERE SD1.D_E_L_E_T_ <>'*'
AND D1_FORNECE = A1_COD
AND D1_FORNECE = A2_COD
AND D1_LOJA = A1_LOJA
AND D1_LOJA = A2_LOJA
GROUP BY
D1_FILIAL,
D1_COD,
D1_XDESCRI,
D1_FORNECE,
A1_NOME,
A2_NOME,
D1_DOC,
D1_EMISSAO,
D1_SERIE,
D1_QUANT,
D1_TOTAL,
D1_VALICM,
D1_TES,
D1_TIPO,
D1_TP,
D1_LOCAL
ORDER BY D1_EMISSAO, D1_DOC
Respostas
-
Você vai ter que usar dois Left Join. Um pra tabela de clientes e outro pra tabela de fornecedores.
E aí você usará um case pra retornar as informações do cliente ou do fornecedor, com base neste "campo" que diferencia um e outro.
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.- Marcado como Resposta LMBS sexta-feira, 19 de outubro de 2012 11:32
Todas as Respostas
-
"dependendo da Nf"
O que exatamente que dizer com isso?
Qual campo da tabela de notas diz pra você se é pra buscar o cliente ou o fornecedor?
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta. -
Boa tarde,
Supondo que o valor da coluna D1_FORNECE seja 15 para uma determinada nota, como seria possível identificar que esse 15 é o código de um cliente ou fornecedor?
Assinatura: http://www.imoveisemexposicao.com.br
-
Você vai ter que usar dois Left Join. Um pra tabela de clientes e outro pra tabela de fornecedores.
E aí você usará um case pra retornar as informações do cliente ou do fornecedor, com base neste "campo" que diferencia um e outro.
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.- Marcado como Resposta LMBS sexta-feira, 19 de outubro de 2012 11:32