Usuário com melhor resposta
Select de Rastreabilidade de dados

Pergunta
-
Pessoal
Num processo de rastreabilidade, com os dados abaixo, qual seria a melhor maneira de fazer uma pesquisa onde teria o codigo id_bordero = 50, e eu chegar ao id_bordero = 44, e mostrar a informação 244 que seria a informação do campo id_chave_Controle_doc ?
Respostas
-
Deleted
- Marcado como Resposta Giovani Cr sexta-feira, 13 de dezembro de 2013 17:41
-
Olá,
Eu gosto da idéia de utilizar autorrelacionamento. Veja se o exemplo abaixo te ajuda.
select c.id_Chave_Controle_Doc from Bordero B inner join Bordero C on b.id_Bordero_seq = c.id_Bordero where b.id_bordero = 50
Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
- Marcado como Resposta Giovani Cr sexta-feira, 13 de dezembro de 2013 17:41
-
Boa tarde,
neibala, experimente mais ou menos dessa forma:
with CTE_Rec as ( select id_Bordero as id_Bordero_Filtro, id_Bordero, id_Bordero_Seq as id_Bordero_Pai, id_Chave_Controle_Doc from Tabela where id_Bordero = 50 union all select c.id_Bordero_Filtro, t.id_Bordero, t.id_Bordero_Seq, t.id_Chave_Controle_Doc from CTE_Rec as c inner join Tabela as t on t.id_Bordero = c.id_Bordero_Pai ) select top 1 * from CTE_Rec order by id_Bordero
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Giovani Cr sexta-feira, 13 de dezembro de 2013 17:41
-
Experimente dessa forma:
with CTE_Rec as ( select id_Bordero as id_Bordero_Filtro, id_Bordero, id_Bordero_Anterior, id_Chave_Controle_Doc from Tabela where id_Bordero = 50 union all select c.id_Bordero_Filtro, t.id_Bordero, t.id_Bordero_Anterior, t.id_Chave_Controle_Doc from CTE_Rec as c inner join Tabela as t on t.id_Bordero = c.id_Bordero_Anterior ) select * from CTE_Rec where id_Bordero_Anterior = 0
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Giovani Cr sexta-feira, 13 de dezembro de 2013 17:42
-
Você poderia explicar melhor o que significa não "representar a verdade" pois a query vai pegar exatamente o que está em id_Bordero_Seq, independentemente se for identity, e fazer a relação com id_Bordero e relacionar o Bordero Pai e o Bordero Filho...
Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
- Marcado como Resposta Giovani Cr sexta-feira, 13 de dezembro de 2013 17:42
-
Neibala,
Rastreabilidade de dados é algo de muito complexidade em diversos projetos que eu já trabalhei, mesmo os dados não tendo o relacionamento físico mas sim o lógico o importante é que exista algum vínculo.
Nesta sua necessidade, para realizar o rastreamento vai depender em muito de como você distribuiu os dados, em particularmente em diversos projetos, trabalhei com Stored Procedures fazendo a busca dos dados de acordo com um parâmetro chave para encontrar os relacionamentos e seus dependentes.
Se quiser tenhos exemplos de como fiz isso!!!!
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Marcado como Resposta Giovani Cr sexta-feira, 13 de dezembro de 2013 17:42
Todas as Respostas
-
Deleted
- Marcado como Resposta Giovani Cr sexta-feira, 13 de dezembro de 2013 17:41
-
-
Olá,
Eu gosto da idéia de utilizar autorrelacionamento. Veja se o exemplo abaixo te ajuda.
select c.id_Chave_Controle_Doc from Bordero B inner join Bordero C on b.id_Bordero_seq = c.id_Bordero where b.id_bordero = 50
Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
- Marcado como Resposta Giovani Cr sexta-feira, 13 de dezembro de 2013 17:41
-
-
Boa tarde,
neibala, experimente mais ou menos dessa forma:
with CTE_Rec as ( select id_Bordero as id_Bordero_Filtro, id_Bordero, id_Bordero_Seq as id_Bordero_Pai, id_Chave_Controle_Doc from Tabela where id_Bordero = 50 union all select c.id_Bordero_Filtro, t.id_Bordero, t.id_Bordero_Seq, t.id_Chave_Controle_Doc from CTE_Rec as c inner join Tabela as t on t.id_Bordero = c.id_Bordero_Pai ) select top 1 * from CTE_Rec order by id_Bordero
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Giovani Cr sexta-feira, 13 de dezembro de 2013 17:41
-
Não entendi... Você não sabe qual é o id_bordero que quer consultar? Basta vc tirar a cláusula where e terá todos os borderos com a informação.
Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
-
Roberto
Acredito que não estou sendo tão claro para você, o id_bordero eu sei, e até pode variar, o problema está relacionado ao script que você me enviou, que infelizmente não é o que representa a verdade, pois o id_Bordero_seq, é uma sequencia do banco, agora caso tenha outra ideia ela será bem vinda.
Grato de sua atenção
- Marcado como Resposta Giovani Cr sexta-feira, 13 de dezembro de 2013 17:41
- Não Marcado como Resposta Giovani Cr sexta-feira, 13 de dezembro de 2013 17:42
-
Experimente dessa forma:
with CTE_Rec as ( select id_Bordero as id_Bordero_Filtro, id_Bordero, id_Bordero_Anterior, id_Chave_Controle_Doc from Tabela where id_Bordero = 50 union all select c.id_Bordero_Filtro, t.id_Bordero, t.id_Bordero_Anterior, t.id_Chave_Controle_Doc from CTE_Rec as c inner join Tabela as t on t.id_Bordero = c.id_Bordero_Anterior ) select * from CTE_Rec where id_Bordero_Anterior = 0
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Giovani Cr sexta-feira, 13 de dezembro de 2013 17:42
-
Você poderia explicar melhor o que significa não "representar a verdade" pois a query vai pegar exatamente o que está em id_Bordero_Seq, independentemente se for identity, e fazer a relação com id_Bordero e relacionar o Bordero Pai e o Bordero Filho...
Roberto Fonseca MCT / MCITP - Database Administrator 2008 MCITP - Database Developer 2008 MCITP - Business Intelligence 2008
- Marcado como Resposta Giovani Cr sexta-feira, 13 de dezembro de 2013 17:42
-
Neibala,
Rastreabilidade de dados é algo de muito complexidade em diversos projetos que eu já trabalhei, mesmo os dados não tendo o relacionamento físico mas sim o lógico o importante é que exista algum vínculo.
Nesta sua necessidade, para realizar o rastreamento vai depender em muito de como você distribuiu os dados, em particularmente em diversos projetos, trabalhei com Stored Procedures fazendo a busca dos dados de acordo com um parâmetro chave para encontrar os relacionamentos e seus dependentes.
Se quiser tenhos exemplos de como fiz isso!!!!
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Marcado como Resposta Giovani Cr sexta-feira, 13 de dezembro de 2013 17:42
-