Usuário com melhor resposta
Join - item não existente em outra tabela

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
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
-
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
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
-
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
-
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.
- Editado Antero Marques terça-feira, 19 de abril de 2016 17:39
-