none
Join - item não existente em outra tabela RRS feed

  • Pergunta

  • Pessoal, travei!

    a solução deve estar na minha cara e não estou conseguindo ver.

    preciso selecionar apenas os registros do [GRUPO] B na tabela [ITEM] que não possuem o [CAMPO]  Classe na tabela ITEM_DTL.


    Natan




    • Editado 'Natan Silva terça-feira, 19 de abril de 2016 15:45
    terça-feira, 19 de abril de 2016 15:41

Respostas

  • Natan,

    Então, realmente a solução pode estar na sua cara, mas da maneira que esta modelada fica um pouco complicada de se conseguir entender.

    O que você esta querendo é realizar esta junção entre a tabela Item x Item_DTL, mas para este caso é necessário identificar por qual coluna que podemos realizar esta junção, analisando o seu desenho entendo que seria através da coluna Registro, sendo assim, veja se este exemplo ajuda:

    Select I.Desc, I.Grupo, ID.Campo From Item I Inner Join Item_DTL ID
    				         On I.Registro = ID.Registro
    				         And I.Grupo = "B"
    				         And ID.Campo <> "Classe"


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Sugerido como Resposta Poliana Dias terça-feira, 19 de abril de 2016 17:35
    • Marcado como Resposta Marcos SJ terça-feira, 19 de abril de 2016 18:30
    terça-feira, 19 de abril de 2016 16:00
  • Boa tarde,

    Experimente fazer uns testes dessa forma:

    select i.*
    from Item as i
    where
        i.Grupo = 'B' and
        not exists 
            (select 1 from Item_Dtl as d
             where 
                 d.Registro = i.Registro and
                 d.Campo = 'CLASSE')
    

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Marcos SJ terça-feira, 19 de abril de 2016 18:30
    terça-feira, 19 de abril de 2016 17:10

Todas as Respostas

  • Natan,

    Então, realmente a solução pode estar na sua cara, mas da maneira que esta modelada fica um pouco complicada de se conseguir entender.

    O que você esta querendo é realizar esta junção entre a tabela Item x Item_DTL, mas para este caso é necessário identificar por qual coluna que podemos realizar esta junção, analisando o seu desenho entendo que seria através da coluna Registro, sendo assim, veja se este exemplo ajuda:

    Select I.Desc, I.Grupo, ID.Campo From Item I Inner Join Item_DTL ID
    				         On I.Registro = ID.Registro
    				         And I.Grupo = "B"
    				         And ID.Campo <> "Classe"


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    • Sugerido como Resposta Poliana Dias terça-feira, 19 de abril de 2016 17:35
    • Marcado como Resposta Marcos SJ terça-feira, 19 de abril de 2016 18:30
    terça-feira, 19 de abril de 2016 16:00
  • Boa tarde,

    Experimente fazer uns testes dessa forma:

    select i.*
    from Item as i
    where
        i.Grupo = 'B' and
        not exists 
            (select 1 from Item_Dtl as d
             where 
                 d.Registro = i.Registro and
                 d.Campo = 'CLASSE')
    

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Marcos SJ terça-feira, 19 de abril de 2016 18:30
    terça-feira, 19 de abril de 2016 17:10
  • Natan,

    Respostas do Galvão e do Gapimex. 

    Pode fechar o tópico !

    rsrsrrsrs

    Att,


    Antero Marques

    _________________________________________________________________________

    Se a resposta for útil, marque como útil, se respondeu totalmente sua dúvida, marque como resposta.

    O Fórum MSDN é utilizado também como base de conhecimento, então é responsabilidade de todos mantê-lo organizado e funcional.


    terça-feira, 19 de abril de 2016 17:39
  • nem como questionar! rsrsrs

    Obrigado a todos!


    Natan

    terça-feira, 19 de abril de 2016 19:43