 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
valdimari Novato

Registrado: Segunda-Feira, 26 de Fevereiro de 2007 Mensagens: 19
|
Enviada: Qua Ago 01, 2012 4:09 pm Assunto: Migração de Dados [Resolvido] |
|
|
Pessoal,
Estou trabalhando em uma migração .DBF / Firebird e me deparei com mais um problema (não sei se consigo resolver isto por SQL ou se é mais fácil criar uma rotina para alimentar a nova tabela).
Meu cenário é o seguinte:
Tabela1
Desenho1, Diametro1, Dilatacao1, Desenho2, Diametro2, Dilatacao2
Tabela2
Id, Desenho, Diametro, Dilatacao
Tabela3
Id_Master, Id_Comp
preciso alimentar a tabela 3 com o resultado do relacionamento da Tabela1 e Tabela2.
onde: Id_Master é a relação Desenho1, Diametro1, Dilatacao1
Id_Comp é a relação Desenho2, Diametro2, Dilatacao2
relacionados com a tabela2.
não consigo fazer isto por join pois estou utilizando a mesma tabela para realizar os dois relacionamentos e não deu certo. Tabém criei 2 views para retornarem o valor, mas qdo coloco-as juntas fica, fica, fica e não vai.
Também pensei em criar 2 novos campos na tabela 1 (master e comp), alimentá-los primeiro e depois alimentar a tabela 3, mas não achei como.
Estou utilizando o IbExpert, e gostaria de resolver isto com ele mesmo, derepente criando uma trigger ou SP para isto, e não ter que criar uma rotina para isto. Sei que a rotina até é mais facil a lógica.
Se alguém já passou por isto e poder ajudar ou aconselhar...
Desde já agradeço...
Editado pela última vez por valdimari em Qui Ago 02, 2012 10:24 am, num total de 1 vez |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Ago 01, 2012 4:35 pm Assunto: |
|
|
Boa tarde,
Você pode postar um exemplo com alguns registros das tabelas 1 e 2, e como ficaria a tabela 3?
Acho que facilitaria o entendimento da questão.
_________________
Assinatura: Imobiliarias em Suzano |
|
Voltar ao Topo |
|
 |
valdimari Novato

Registrado: Segunda-Feira, 26 de Fevereiro de 2007 Mensagens: 19
|
Enviada: Qua Ago 01, 2012 5:16 pm Assunto: |
|
|
Imex,
seria assim:
Tabela1
Desenho1 Diametro1 Dilatacao1 Desenho2 Diametro2 Dilatacao2
3BS-400 8" 25mm 4BS-200 5" 10mm
3BS-400 8" 25mm 1MP-500 10" 30mm
4BS-100 18" 2500mm 1MP-120 5" 10mm
4BS-100 18" 2500mm 3BS-120 15" 10mm
3BS-500 20" 25mm 4BS-200 5" 10mm
Tabela2
ID Desenho Diametro Dilatacao
1 3BS-400 8" 25mm
2 4BS-200 5" 10mm
3 1MP-500 10" 30mm
4 4BS-100 18" 2500mm
5 3BS-500 20" 25mm
6 3BS-120 15" 10mm
7 1MP-120 5" 10mm
Tabela3
Id_Master Id_Comp
1 2
1 3
4 6
4 7
5 2 |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Ago 01, 2012 5:41 pm Assunto: |
|
|
Experimente o Select abaixo:
Código: | select m.ID as Id_Master, c.ID as Id_Comp
from Tabela1 as t
join Tabela2 as m on (m.Desenho = t.Desenho1) and
(m.Diametro = t.Diametro1) and
(m.Dilatacao = t.Dilatacao1)
join Tabela2 as c on (c.Desenho = t.Desenho2) and
(c.Diametro = t.Diametro2) and
(c.Dilatacao = t.Dilatacao2) |
Espero que ajude. |
|
Voltar ao Topo |
|
 |
valdimari Novato

Registrado: Segunda-Feira, 26 de Fevereiro de 2007 Mensagens: 19
|
Enviada: Qui Ago 02, 2012 10:27 am Assunto: [Resolvido] |
|
|
imex,
Deu certo.
tinham mais duas tabelas para incluir no relacionamento, pois o diametro e a dilatacao, agora também tem suas respectivas tabelas.
Mas seguindo o raciocínio que você postou, funcionou perfeitamente...
Mais uma vez, muito obrigado... |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qui Ago 02, 2012 10:32 am Assunto: |
|
|
Blz, agradeço o retorno. |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|