Re: [firebase-br] update com left join...é possivel?
Rodolpho da Silva Nascimento
rnascimento em cmsolucoes.com.br
Qua Ago 10 11:36:43 -03 2005
Update só é feito em apenas uma tabela.
Se vc desejar fazer um Update com resultados de outra tabela, vc pode fazer
assim:
UPDATE
TABELA_A
SET
CAMPO_A = (SELECT CAMPO_B FROM TABELA_B WHERE CAMPO_C = XYZ)
Mas isso vai atualizar o mesmo valor para todo o CAMPO_A. Se o seu SubSelect
trouxer mais de uma linha, não será possível executar o UPDATE.
Eu já tive esta necessidade e a única solução foi fazer isto através de uma
SP.
No seu caso, seria:
CREATE PROCEDURE BLBLB......
....
Vc teria que criar duas variáveis:
:P_STQ.STQ_ID = Integer
:P_STQ.ORI_ID = Integer
.....
Executar um FOR ..SELECT
FOR SELECT STQ.STQ_ID, STQ.ORI_ID FROM (Sua tabela STQ que vc não mencionou)
INTO :P_STQ.STQ_ID, :P_STQ.ORI_ID;
DO
BEGIN
UPDATE
STQ_TBD_LOTE SQQ
SET
SQQ.SQQ_CODIGO=:CODIGO_NOVO
WHERE
SQQ.STQ_ID = :P_STQ.STQ_ID
AND SQQ.ORI_ID = :P_STQ.ORI_ID
AND SQQ.SQQ_CODIGO='TESTE'
END
Espero que seja isso que vc esteja procurando
T+
Rodolpho
----- Original Message -----
From: "marcio" <marcio em altero.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, August 10, 2005 11:14 AM
Subject: [firebase-br] update com left join...é possivel?
Ola Amigos do forum alguem ja usou update com left join ? é possivel fazer
isto?
como por exemplo:
UPDATE STQ_TBD_LOTE SQQ
LEFT JOIN STQ_TBD_LOTE SQQ
ON ( STQ.STQ_ID = SQQ.STQ_ID
AND STQ.ORI_ID = SQQ.ORI_ID)
SET SQQ.SQQ_CODIGO=:CODIGO_NOVO
WHERE SQQ.SQQ_CODIGO='TESTE'
Márcio Konrath
CPD - Altero Design
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista