Bonjour,

je suis Avec FireBird 2.0

voilà je besoin de mettre à jour une table via 2 autres tables, j'ai essayé 2 requetes, si mon article existe déjà dans les 2 autres tables je veux mettre à jour ma 3 ieme table.
mais cela ne fonctionne pas ......

la 1er me met le message : multiple rows in singleton select

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
UPDATE ARTICLE SET DEP = 1 WHERE PRIMAIRE = (SELECT F.NFOU || Case WHEN F.REFA = '' THEN F.NART ELSE F.REFA END as PRIM
FROM FORBARFO F INNER JOIN FORBARTI A ON (F.NART=A.NART) 
INNER JOIN ARTICLE T ON (F.NFOU || Case WHEN F.REFA = '' THEN F.NART ELSE F.REFA END = T.PRIMAIRE) 
WHERE A.SAI1 <> 'S11' and F.NFOU<>'@@@')
le 2ieme n'en fini pas, j'ai arreter le processus apres 1 heure.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
UPDATE ARTICLE T SET DEP = 1 WHERE EXISTS (SELECT F.NFOU || Case WHEN F.REFA = '' THEN F.NART ELSE F.REFA END as PRIM
FROM FORBARFO F INNER JOIN FORBARTI A ON (F.NART=A.NART) 
WHERE A.SAI1 <> 'S11' and F.NFOU<>'@@@' and T.PRIMAIRE = F.NFOU || Case WHEN F.REFA = '' THEN F.NART ELSE F.REFA END)
si quelqu'un à une idée....
MERCI d'avance.
jc