Olá Pessoal,
Alguém sabe me informar como eu posso fazer um insert entre duas colunas de tabelas diferentes utilizando uma condição, por exemplo:
tabela1
colunaA - colunaB - colunaC
AB
AC
BC
tabela2
colunaA - colunaB - colunaC
lista (X1,X2,X3...XN)
Se o valor da "tabela1.colunaA" for igual a "AB" então a "tabela2.colunaA" recebe "X1", se o valor da "tabela1.colunaA" for igual a "AC" então a "tabela2.colunaA" recebe "X2", assim sucessivamente. Lembrando que a colunaA da tabela2 receberá os valores de uma lista (X1,X2,X3..XN).
Alguém poderia me ajudar a resolver esse problema.
Fazer insert com duas tabelas diferentes
-
- Moderador
- Mensagens: 1177
- Registrado em: Qui, 15 Out 2009 10:28 am
- Localização: Recife
talvez seja o caso de fazer um PLSQL...
em select deve dar..
em select deve dar..
- wbarrence
- Rank: Programador Sênior
- Mensagens: 55
- Registrado em: Qui, 06 Out 2011 10:30 am
- Localização: SP
--
WABS
WABS
Olá Diego,
Antes de mais nada já fico agradecido pela sua resposta.
Todavia eu ainda não trabalho com o PL/SQL, trabalho somente com DDL, DML e DCL, eu estava estudando (e tentando alguma coisa) com a cláusula "INSERT ALL" e a expressão "CASE", mas ainda não está surtindo resultado, eu tenho 50 linhas para serem atualizadas, e o código SQL para fazer isso ainda está ficando muito comprido.
Você tem alguma outra sugestão?
Att,
Wanderson Barrence
Antes de mais nada já fico agradecido pela sua resposta.
Todavia eu ainda não trabalho com o PL/SQL, trabalho somente com DDL, DML e DCL, eu estava estudando (e tentando alguma coisa) com a cláusula "INSERT ALL" e a expressão "CASE", mas ainda não está surtindo resultado, eu tenho 50 linhas para serem atualizadas, e o código SQL para fazer isso ainda está ficando muito comprido.
Você tem alguma outra sugestão?
Att,
Wanderson Barrence
-
- Rank: DBA Pleno
- Mensagens: 232
- Registrado em: Sex, 30 Mar 2007 7:26 pm
- Localização: Londrina - PR
Rafael O. Genaro
Sem usar PL/SQL, o jeito é fazer um decode com cada situação, ou então criar uma tabela temporaria com a relação dos respectivos códigos de cada tabela, a não ser que exista alguma regra para criação da coluna A da tabela B.
insert into tabela2 t2 (colunaA, colunaB, colunaC)
select decode( t1.colunaA
, 'AB', 'X1'
, 'AC', 'X2'
, 'BC', 'X3'
/*
, ... etc
*/
)
, t1.colunaB
, t1.colunaC
from tabela1 t1
- wbarrence
- Rank: Programador Sênior
- Mensagens: 55
- Registrado em: Qui, 06 Out 2011 10:30 am
- Localização: SP
--
WABS
WABS
Na verdade também o INSERT INTO também não funcionou, devido ao fato de que as outras colunas da "tabela 2" já possuírem registros, então eu tentei com o comando UPDATE, e desta maneira eu só consegui só consegui resolver o meu problema fazendo o UPDATE de cada registro da coluna um a um.
Se alguém tiver uma ideia melhor eu aceito sugestões.
Att,
Wanderson Barrence
Se alguém tiver uma ideia melhor eu aceito sugestões.
Att,
Wanderson Barrence
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 20 visitantes