Fórum Update - Dados de uma Tabela para Outra.... #401482

23/05/2011

0


Bom dia pessoal
venho pedir uma força para fazer um UPDATE com o firebird, o negocio é o seguinte
Tenho duas tabelas: NF e CNOTA
Precido atualizar os dados da tabela CNOTA, conforme os dados da tabela NF, 
Esta acontecendo que temos Notas Ficais com Numero igual mas com serie diferente ( normal )Entao preciso atualizar a tabela de Contra Notas ( CNOTA ) conforme os dados da tabela NF
Tenho o seguinte esquema
[b]Tabela NF[/b]                    num_nf                                   serie_nf
[b]Tabela CNOTA[/b]numero_cnotaserie_cnotanf_num ( conforme dados da tabela NF )nf_num_serie ( conforme os dados da tabela NF )

Preciso atualizar as SERIES das Notas e nao estou conseguindo.... segue o comando que estou usando:Sabendo que Existem mais de uma nota fiscal(nf.num_nf) mas com serie diferente( nf.serie_nf ) . 
UPDATE cnota SET cnota.nf_num_serie =   (SELECT nf.serie_nf FROM nf, cnota WHERE nf.num_nf = cnota.nf_num)

mas aparece o seguinte erro no IB Expert : [b]multiple rows in singleton select.[/b]Provavelmente por existir Notas Repitidas na tabela NF mas com serie diferente.Todos as dados do campos nf_num_serie da tabela CNOTA estao vazios, pois o campo é novo
Como posso atualizar isso?
ObrigadoWellyngton
Atualizando...Segue imagem para dar uma ideia no que preciso fazer

 
 
Wellyngton

Wellyngton

Responder

Posts

23/05/2011

Rafael Mattos

tenta assim


UPDATE cnota c
   SET c.nf_num_serie =   (SELECT nf.serie_nf FROM nf
          WHERE nf.num_nf = c.nf_num)
Responder

Gostei + 0

23/05/2011

Rafael Mattos

tenta assim


UPDATE cnota c
   SET c.nf_num_serie =   (SELECT nf.serie_nf FROM nf
          WHERE nf.num_nf = c.nf_num)




ou caso a tabela nf tenha mais de um registro com o mesmo nf_num




UPDATE cnota c
   SET c.nf_num_serie =   (SELECT first 1nf.serie_nf FROM nf
          WHERE nf.num_nf = c.nf_num)
Responder

Gostei + 0

23/05/2011

Wellyngton

  Olá Rafael, Obrigado por me ajudar

estou quase conseguindo eu acho hehehe

agora acontece o seguinte... Tentei com o comando que vc me passou...
ele fica trabalhando no banco,,,, mas nao conclui.... parece que trava o banco

o que pode ser?... estou tentando em outra maquina aagora... pois tem 53mil registros.. para ver se funciona


obrigado
t+
Responder

Gostei + 0

23/05/2011

Rafael Mattos

  Olá Rafael, Obrigado por me ajudar

estou quase conseguindo eu acho hehehe

agora acontece o seguinte... Tentei com o comando que vc me passou...
ele fica trabalhando no banco,,,, mas nao conclui.... parece que trava o banco

o que pode ser?... estou tentando em outra maquina aagora... pois tem 53mil registros.. para ver se funciona


obrigado
t+



tem trigger? ela pode deixar lento dependendo o que ela está fazendo, se tiver desativa ela e tenta de novo
Responder

Gostei + 0

25/05/2011

Emerson Nascimento

analise bem seus registros. se você estiver falando de notas de entrada, pode haver um mesmo número cada fornecedor. para resolver isso você precisará filtrar também por outro(s) campo(s) além do número da nota.
talvez pelos campos modelo_nf e modelo_cnota... não conheço suas tabelas então não tenho como dar palpite.

mas o correto seria relacionar pelo ID da nota.

Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar