Update com subselect

Boa tarde,

preciso dar um update com um subselect porém não estou conseguindo…
preciso setar todos status como 1 na tabela TR_SEQUENCER_QLT_REP e meu script da erro.
Qual seria a sintaxe correta?

Segue o script

UPDATE TR_SEQUENCER_QLT_REP
SET SEQ_STATUS = 1
( SELECT *
FROM TR_PO_ASSOCIATE_REC TPOREC
INNER JOIN TR_SEQUENCER_QLT_REP TSEQQREP
ON ((TPOREC.SEQUENCER_QLT_REP_ID = TSEQQREP.ID_SEQUENCER_QLT_REP))
INNER JOIN TR_REC_QLT_REPORT TRQREP
ON ((TSEQQREP.QLT_REC_REP_ID = TRQREP.ID_REC_QLT_REPORT))
INNER JOIN TR_ITEM_RECEIVED TIREC
ON ((TRQREP.ITEM_RECEIVED_ID = TIREC.ID_ITEM_RECEIVED))
INNER JOIN TR_STUFF TSTFF
ON ((TIREC.STUFF_ID = TSTFF.ID_STUFF))
INNER JOIN TR_P_O_MAN_PROD_LOT_DTL TPOLPD
ON ((TPOLPD.ID_P_O_MAN_PROD_LOT_DTL = TPOREC.PO_PROD_LOT_DTL_ID))
INNER JOIN TR_P_O_MANAGE_LOT_PROD TRPOLP
ON ((TRPOLP.ID_P_O_MANAGE_LOT_PROD = TPOLPD.P_O_MANAGE_LOT_PROD_ID))
WHERE (TSEQQREP.SEQ_STATUS = 4 AND TPOLPD.IDENTIFY_CODE is null )

Obrigado!!

Marco,

Você está selecionando tudo no select, selecione apenas o campo (SEQ_STATUS) que será o update.

1 curtida

Boa tarde primeiro obrigado pela resposta e desculpa a demora na minha resposta.

Eu diminui o select veja só:

update tr_sequencer_qlt_rep set seq_status = 1 (select * from tr_sequencer_qlt_rep a inner join tr_po_associate_rec b on a.id_sequencer_qlt_rep = b.sequencer_qlt_rep_id where b.po_prod_lot_dtl_id = 0 )

o select de dentro me traz todos os caras que eu quero e ele funciona sem o update, porém eu quero setar a coluna seq_status da tabela tr_sequencer_qlt_rep com o valor 1…

Dessa forma também esta dando errado…

Alguém poderia me ajudar?

update tr_sequencer_qlt_rep 
   set seq_status = 1 
 where exists 
       (select 1 
          from tr_po_associate_rec b 
         where tr_sequencer_qlt_rep.id_sequencer_qlt_rep = b.sequencer_qlt_rep_id 
           and b.po_prod_lot_dtl_id = 0)
1 curtida

Pow cara obrigado!!!
Na mosca!
Funcionou!

1 curtida