Array
(
)

Update Correlacionamento

Digitom
   - 22 mar 2006

Pessoal estou precisando atualizar minha tabela de itenspedidos o campo pedquant = 0
desde que ela obedeça os critérios da tabela dadospedidos que é o cabeçalho do pedido.

Resumindo, quero colocar todas as quantidades da tabela de itenspedidos igual a 0 (zero), quando minha nota (tabela dadospedidos) já estiver sido faturada (campo dpcontronota) e minha duplicata estiver sido impressa também (campo dpcontrodup).


Citação:
update itenspedidos i set pedquant = 0
where i.pednum = ( select dppednum From dadospedidos d
where (d.dpcontronota = ´S´ and d.dpcontrodup = ´S´) or
(d.dpstatus = ´C´) and i.pednum = d.dppednum)


Quando peço para executar o processamento começa e fica por alguns segundos (como se estivesse travado) mas depois aparece a mensagem abaixo.


Citação:
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
lock conflict on no wait transaction.
deadlock.



Se alguém puder me ajudar e precisar de mais detalhes é só postar.

:lol:

http://geocities.yahoo.com.br/digitosistemas/


Digitom
   - 23 mar 2006

:lol:

Consegui resolver,
estou postando a solução para alguém passar pelo mesmo problema que eu. Segue instrução:

#Código


update itenspedidos ip set ip.pedquant = 0
where ip.pednum =
(
select dppednum
from dadospedidos
where
(dppednum = ip.pednum and dpcontronota = ´S´ and dpcontrodup = ´S´) or
(dppednum = ip.pednum and dpstatus = ´C´)
)