UPDATE TB_1 SET data_1 = TB_2.data_2
FROM TB_2
where TB_1.cod=TB_2.cod
and TB_2.data_2<TB_1.data_1
and TB_2.seq=1
and TB_1.cod='11111111'
/
alterar dado de uma tabela com dados de outra
-
- Rank: Estagiário Pleno
- Mensagens: 3
- Registrado em: Sex, 22 Out 2010 11:04 am
- Localização: rj
bom o problema e o seguinte tenho que alterar o dado de uma tabela com os dados de outra e não estou conseguindo aparece a mensagem de "comando SQL não encerrado corretamente, ai vai o meu sql
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
da uma olhada aqui
-
- Rank: Estagiário Pleno
- Mensagens: 3
- Registrado em: Sex, 22 Out 2010 11:04 am
- Localização: rj
amigo vlw pela dica mas nenhum dos sql mostrado no topico deu certo, pois para eu atualizar não basta somente o cod da tb_1 ser igual ao cod da TB_2.
eu quero atualizar a data_1 da TB_1 com o valor da data_2 da TB_2
quando o valor da Data_2 for menor que da data_1 a data_2 tem que ser da sequencia = 1 (pois para o mesmo cod tenho varias fichas com o mesmo cod) e de um codigo específico mencionado
eu quero atualizar a data_1 da TB_1 com o valor da data_2 da TB_2
quando o valor da Data_2 for menor que da data_1 a data_2 tem que ser da sequencia = 1 (pois para o mesmo cod tenho varias fichas com o mesmo cod) e de um codigo específico mencionado
-
- Rank: Estagiário Pleno
- Mensagens: 3
- Registrado em: Sex, 22 Out 2010 11:04 am
- Localização: rj
Exemplo
TB_1
TB_2
a TB_1 tem que ficar assim
obrigado
TB_1
cod data_1
1 20/01/2010
2 12/02/2009
3 13/06/2008
TB_2
cod data_2 seq
1 17/10/1999 1
1 10/01/2010 2
2 12/03/2009 1
3 13/05/2008 1
a TB_1 tem que ficar assim
cod data_1
1 17/10/1999
2 12/02/2009
3 13/05/2008
obrigado
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
da uma olhada com carinho no teu codigo..
acho q isso de update from não funciona não..
UPDATE TB_1 SET data_1 = TB_2.data_2
FROM..
-
- Rank: DBA Sênior
- Mensagens: 389
- Registrado em: Ter, 27 Jul 2010 1:34 pm
- Localização: Sapiranga - RS
- Contato:
Quem falou que programar era fácil??
Quanto mais dificil for a implementação mais valorizado seu trabalho será!
Acessem: www.gfkauer.com.br
Quanto mais dificil for a implementação mais valorizado seu trabalho será!
Acessem: www.gfkauer.com.br
Seu update não funcionaria pela forma que esta estruturado, tente algo próximo a isto:
Update tb_1
Set data_1 = (Select tb_2.data_2
From tb_2
Where tb_1.cod = tb_2.cod
And tb_2.data_2 < tb_1.data_1
And tb_2.seq = 1)
Where tb_1.cod = '11111111' /
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
Daria pra fazer com um subselect no update
algo tipo
só tem de atentar para o subselect trazer apenas um resultado, do contrario vai dar pau.
algo tipo
update tab1
set tab1.campo = (select tab2.campo from tab2 where tab2.codigo = tab1.codigo)
where tab1.codigo = &codigo
-
- Rank: Estagiário Júnior
- Mensagens: 2
- Registrado em: Qui, 07 Ago 2014 5:51 pm
Vou aproveitar o mesmo tópico, sou iniciando em SQL e estou precisando de uma ajuda.
Tenho duas tabelas (SB2000 'saldo estoque' e SB9000 'saldo inicial') onde preciso atualizar o campo SB2000.B2_QINI com o conteúdo do campo da outra tabela SB9.B9_QFIM.
O detalhe é que ambas as tabelas tem vairas filiais, e o UPDATE será apenas em uma filial '09', quando a data da tabela SB9000.B9_DATA = '20131031'
tentei varias formas sem sucesso, segue um exemplo que deu errado.
Esse é o erro:
Relatório de erros -
Erro de SQL: ORA-00904: "SB9"."B9_COD": identificador inválido
00904. 00000 - "%s: invalid identifier"
Abs!!
Tenho duas tabelas (SB2000 'saldo estoque' e SB9000 'saldo inicial') onde preciso atualizar o campo SB2000.B2_QINI com o conteúdo do campo da outra tabela SB9.B9_QFIM.
O detalhe é que ambas as tabelas tem vairas filiais, e o UPDATE será apenas em uma filial '09', quando a data da tabela SB9000.B9_DATA = '20131031'
tentei varias formas sem sucesso, segue um exemplo que deu errado.
UPDATE SB2000
SET B2_QFIM = (SELECT SB9.B9_QINI FROM SB9000 SB9 WHERE
SB9.B9_LOCAL = '01' AND
SB9.B9_FILIAL = '09' AND
SB9.B9_DATA = '20131031' AND
SB9.d_E_L_E_T_ = ' ' )
WHERE
SB2000.B2_LOCAL = '01' AND
SB2000.B2_FILIAL = '09' AND
SB2000.B2_COD = SB9.B9_COD AND
SB2000.d_E_L_E_T_ = ' '
Relatório de erros -
Erro de SQL: ORA-00904: "SB9"."B9_COD": identificador inválido
00904. 00000 - "%s: invalid identifier"
Abs!!
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
Olá gpngiovani,
Bem vindo ao fórum GLUFKE !
Para uma melhor visibilidade, e para que mais pessoas possam responder mais rápido à você, sempre é bom criar um tópico novo.
No seu caso, "SB9" está dentro de uma subquerie do comando "SET=".
Da forma como construiu seu UPDATE, não há como mencionar colunas de SB9 fora do código situado em " SET = ( ......)". Ou seja, você não tem como mencionar ele no WHERE e nem em outra coluna a atualizar.
Abs,
Sergio
Bem vindo ao fórum GLUFKE !
Para uma melhor visibilidade, e para que mais pessoas possam responder mais rápido à você, sempre é bom criar um tópico novo.
No seu caso, "SB9" está dentro de uma subquerie do comando "SET=".
Da forma como construiu seu UPDATE, não há como mencionar colunas de SB9 fora do código situado em " SET = ( ......)". Ou seja, você não tem como mencionar ele no WHERE e nem em outra coluna a atualizar.
Abs,
Sergio
-
- Rank: Estagiário Júnior
- Mensagens: 2
- Registrado em: Qui, 07 Ago 2014 5:51 pm
Opá!!
stcoutinho, você teria como me passar um exemplo de como seria a forma correta ? Já tentei de outras formas mas sem sucesso.
Valeu mesmo pelo retorno,
Forte abraço!!
stcoutinho, você teria como me passar um exemplo de como seria a forma correta ? Já tentei de outras formas mas sem sucesso.
Valeu mesmo pelo retorno,
Forte abraço!!
- stcoutinho
- Moderador
- Mensagens: 850
- Registrado em: Qua, 11 Mai 2011 5:15 pm
- Localização: são Paulo - SP
Hum ..
Não sei se a sua querie original estava completa .. mas tente isso:
Uma coisa: se a sua subquerie retornar mais de um B9_QINI para as condições de filtro em SB9000, seu comando de UPDATE vai gerar um erro, pois não é possivel atualizar uma coluna com uma lista de valores.
Abraços,
Sergio
Não sei se a sua querie original estava completa .. mas tente isso:
UPDATE SB2000
SET B2_QFIM = (SELECT B9_QINI
FROM SB9000
WHERE B9_LOCAL = '01'
AND B9_FILIAL = '09'
AND B9_DATA = '20131031'
AND d_E_L_E_T_ = ' ' )
WHERE B2_LOCAL = '01'
AND B2_FILIAL = '09'
AND d_E_L_E_T_ = ' '
AND B2_COD IN (SELECT B9_COD
FROM SB9000
WHERE B9_LOCAL = '01'
AND B9_FILIAL = '09'
AND B9_DATA = '20131031'
AND d_E_L_E_T_ = ' ' )
Abraços,
Sergio
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes