utilisation d'un select dans le set d'un UPDATE - SQL/NoSQL - Programmation
Marsh Posté le 30-04-2003 à 10:03:30
Personne n'a d'idée.
Parce que là je désespère!!!!
ca fait plusieurs heures que je suis dessus et je trouve pas.
Merci d'avance.
Marsh Posté le 30-04-2003 à 10:05:29
UPDATE champs FROM tables WHERE champ = ou IN (SELECT blabla)
Marsh Posté le 30-04-2003 à 10:49:14
DB2 ...
Et ça t'as essayé comme syntaxe ?
update tab1, tab2
set tab1.x=tab2.y
where tab1.cle = tab2.cle
ou
update tab1
set tab1.x=(select tab2.y
from tab2 where tab1.cle = tab2.cle)
Marsh Posté le 30-04-2003 à 11:13:50
J'ain essayé ça et ça marche pas
update tab1
set tab1.x=(select tab2.y
from tab2 where tab1.cle = tab2.cle)
je vais essayé l'autre.
Marsh Posté le 30-04-2003 à 11:30:17
sauf erreur de ma part tu dois pas pouvoir faire à la fois un update et un select sur la meme table avec db2. Tout comme on peut pas faire insert into MATABLE select champs from MATABLE where ...
Marsh Posté le 30-04-2003 à 14:24:18
ça ne marche pas non plus
Alors apparemment y a pas d'espoir
Personne n'aurait une astuce pour contourner ce problème?
Marsh Posté le 29-04-2003 à 17:40:49
Rien de tel qu'un exemple ppour faire comprendre ce que je veux dire:
UPDATE table
SET Champ1='053', Champ2=0.7* (Valeur que je recherche à l'aide d'un select)
Copie ci dessus des deux éléments de la raquête
Requete principale
UPDATE invent0403.mp003p
SET M3LIE='053', M3PUC=0.7* X
WHERE invent0403.mp003p.m3cps IN
(SELECT cocps FROM opssl50dta.co001p INNER JOIN invent0403.mp003p
ON (opssl50dta.co001p.cocps=invent0403.mp003p.m3cps)
WHERE opssl50dta.co001p.cosfc='TF'
AND invent0403.mp003p.m3quc in ('2', '4'
AND invent0403.mp003p.m3lie='001'
Valeur X
(SELECT crp06 AS X FROM opssl50dta.cr001p INNER JOIN invent00403.mp003p
ON (opssl50dta.cr001p.crart=invent0403.mp003p.m3cps)
WHERE opssl50dta.cr001p.crcli=99998
AND opssl50dta.cr001p.crsai='P3A'
Si quelqu'un pourrait m'aider ça m'arrangerait bcp.
Message édité par maxwell01 le 30-04-2003 à 14:29:31