none
Subquery RRS feed

  • Pergunta

  • Boa Tarde,

     

    Estou tentando fazer o seguinte,

     

    TABLE 1

    NUMPEDIDO, CODPROD

     

    TABLE 2

    NUMPEDIDO, CODPROD

     

    PRECISO VERIFICAR SE OS DADOS CONTÉM NOS DOIS BANCOS.

     

    TENTEI O SEGUINTE:

     

    SELECT * FROM TABLE1 WHERE CODPROD IN (

    SELECT CODPROD WHERE TABLE2)

     

    É POSSÍVEL FAZER UM SUBQUERY COM DOIS CAMPOS AO MESMO TEMPO?

     

    MAS NÃO TRÁS TODOS DADOS QUE FALTAM.

     

    Renê

     

     

    segunda-feira, 6 de outubro de 2008 16:03

Respostas

  • Porque nao usa uma union all e conta ?

     


    Select Codigo , Numpedido 
    From (
    Select Codigo  Numpedido  from SeuBanco2..Tabela2
    Union All
    Select Codigo  Numpedido  from SeuBanco1..Tabela1

    ) Drv group by Codigo,  Numpedido having count(*) >=2

     

     

     

    Abs;

     

    segunda-feira, 6 de outubro de 2008 17:07

Todas as Respostas

  • Rene,

     

    Seria uma subquery para cada campo?

    segunda-feira, 6 de outubro de 2008 16:26
  • Preciso q seja na mesma query.

    segunda-feira, 6 de outubro de 2008 16:37
  • Rene,

     

    Seria assim?

    Code Snippet

     

    Select * from SeuBanco1..Tabela1

     Where Codigo Not Exists(Select Codigo from SeuBanco2..Tabela2)

     And   Codigo Not Exists(Select Codigo from SeuBanco2..Tabela3)

     

     

     

    segunda-feira, 6 de outubro de 2008 16:41
  • Junior,

     

    Tenho dois bancos.

     

    Select * from SeuBanco1..Tabela1

     Where Numpedido Not Exists(Select Numpedido from SeuBanco2..Tabela2)

     And   Codigo Not Exists(Select Codigo from SeuBanco2..Tabela2)

     

    Preciso verificar nos bancos os dois campos chaves.

     

    Renê

     

    segunda-feira, 6 de outubro de 2008 16:54
  • Porque nao usa uma union all e conta ?

     


    Select Codigo , Numpedido 
    From (
    Select Codigo  Numpedido  from SeuBanco2..Tabela2
    Union All
    Select Codigo  Numpedido  from SeuBanco1..Tabela1

    ) Drv group by Codigo,  Numpedido having count(*) >=2

     

     

     

    Abs;

     

    segunda-feira, 6 de outubro de 2008 17:07
  • Renê,

     

    Não sei se entendi a sua pergunta mas normalmente faço isso com LEFT JOIN.

     

    Ex:

     

    Code Snippet

    -- dados que estão em TABLE1 e que não estão em TABLE2

    SELECT TABLE1.CODPROD, TABLE1.NUMPEDIDO

    FROM TABLE1

    LEFT JOIN TABLE2 ON TABLE1.CODPROD = TABLE2.CODPROD

    WHERE TABLE2.CODPROD IS NULL

     

    -- dados que estão em TABLE2 e que não estão em TABLE1

    SELECT TABLE2.CODPROD, TABLE2.NUMPEDIDO

    FROM TABLE2

    LEFT JOIN TABLE1 ON TABLE2.CODPROD = TABLE1.CODPROD

    WHERE TABLE1.CODPROD IS NULL

     

     

     

     

    Att.

     

    Ari C. Raimundo

    segunda-feira, 6 de outubro de 2008 17:28