none
Trazer informação de duas tabela em um campo de uma outra tabela via select RRS feed

  • 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

    quinta-feira, 18 de outubro de 2012 19:26

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.br

    Se 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
    quinta-feira, 18 de outubro de 2012 19:45
    Moderador

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.br

    Se 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.

    quinta-feira, 18 de outubro de 2012 19:43
    Moderador
  • 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

    quinta-feira, 18 de outubro de 2012 19:44
  • 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.br

    Se 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
    quinta-feira, 18 de outubro de 2012 19:45
    Moderador