Usuário com melhor resposta
TABELAS AGRUPADAS

Pergunta
-
Bom dia,
Preciso realizar uma consulta onde por exemplo em uma tabela eu tenho os seguintes dados
É um exemplo:
PRODUTO
Código_PRODUTO
Nome
NIVEL
111
PRODUTO_1
A
2
PRODUTO_2
A
SUB_PRODUTO
Código_SUB_PRODUTO
Código_PRODUTO
Nome
NIVEL
1
111
SUB_PRODUTO
B
2
111
PRODUTO
A
3
2
SUB_PRODUTO
B
Se eu fizer uma consulta no PRODUTO (111) e o seu SUB_PRODUTO ficaria assim
Resultado
Código_PORDUTO
Nome
Código_SUB_PRODUTO
Nome
NIVEL
111
PRODUTO_1
1
SUB_PRODUTO
B
111
PRODUTO_1
2
PRODUTO
A
Agora vem a dúvida, é possível com base no resultado acima ele identificar que um item da minha consulta que está na tabela SUB_PRODUTO também está na tabela PRODUTO e realizar uma nova consulta incluindo agora esse item no resultado.
Exemplo
Código_PORDUTO
Nome
Código_SUB_PRODUTO
Nome
NIVEL
111
PRODUTO_1
1
SUB_PRODUTO
B
111
PRODUTO_1
2
PRODUTO
A
2
PRODUTO_2
3
SUB_PRODUTO
B
Tentei alguns SELECT utilizando IF ou WHILE mas não tive sucesso, se alguém tiver algum exemplo ficarei muito grato.
Respostas
-
Bom dia,
Experimente fazer uns testes com CTE recursiva conforme exemplo abaixo:
with CTE_Rec as ( select p.Codigo_Produto, p.Nome, s.Codigo_Sub_Produto, s.Nome as Nome_Sub_Produto, s.Nivel from Sub_Produto as s inner join Produto as p on p.Codigo_Produto = s.Codigo_Produto where s.Codigo_Produto = 111 union all select p.Codigo_Produto, p.Nome, s.Codigo_Sub_Produto, s.Nome as Nome_Sub_Produto, s.Nivel from CTE_Rec as c inner join Sub_Produto as s on s.Codigo_Produto = c.Codigo_Sub_Produto inner join Produto as p on p.Codigo_Produto = s.Codigo_Produto ) select * from CTE_Rec
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Leandro HG sexta-feira, 7 de abril de 2017 12:18
-
Deleted
- Marcado como Resposta Robson William Silva terça-feira, 14 de março de 2017 12:12
Todas as Respostas
-
Bom dia,
Experimente fazer uns testes com CTE recursiva conforme exemplo abaixo:
with CTE_Rec as ( select p.Codigo_Produto, p.Nome, s.Codigo_Sub_Produto, s.Nome as Nome_Sub_Produto, s.Nivel from Sub_Produto as s inner join Produto as p on p.Codigo_Produto = s.Codigo_Produto where s.Codigo_Produto = 111 union all select p.Codigo_Produto, p.Nome, s.Codigo_Sub_Produto, s.Nome as Nome_Sub_Produto, s.Nivel from CTE_Rec as c inner join Sub_Produto as s on s.Codigo_Produto = c.Codigo_Sub_Produto inner join Produto as p on p.Codigo_Produto = s.Codigo_Produto ) select * from CTE_Rec
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Leandro HG sexta-feira, 7 de abril de 2017 12:18
-
-
Isso mesmo José Diz, o que a consulta vai fazer é abrir o processo Pai e sua cadeia de processo, caso tenha um item que possui processo de produção eu preciso ver o que está amarrado a ele. Mas é bem isso que você colocou "Estrutura de produtos"
-
Deleted
- Marcado como Resposta Robson William Silva terça-feira, 14 de março de 2017 12:12
-
Bom dia,
Devido a falta de interação do autor dessa pergunta,
essa thread está sendo fechada. Caso o problema ainda
esteja ocorrendo, favor abrir uma nova thread.
Atenciosamente,
Robson William Silva
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.