Transformer un update en merge
Salut ,
Je souhaite transformer l'UPDATE suivant en MERGE tout en faisant 1 seul SELECT d'un coup avec jointure des 4 tables et appliquer SELECT...CASE WHEN au lieu de CASE WHEN ...SELECT ...
cd_par est une donnée obligatoire dans chaque table.
Merci de votre aide.:roll:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
UPDATE PRODUITS P
SET P.status = 'A'
,P.cd_type = (CASE WHEN (SELECT 1 FROM PARAM PRM WHERE PRM.cd_par = 2012 AND PRM.cd_par = P.cd_par AND PRM.id_auto = P.id_auto) = 1
THEN 'P1'
ELSE (SELECT MIN(D.cd_FLO) KEEP(DENSE_RANK FIRST ORDER BY D.no_ordre)
FROM DIR D,COM C
WHERE P.cd_par = 2012
AND D.cd_par = 2012
AND C.cd_par = 2012
AND D.cd_par = C.cd_par
AND P.id_COM = C.id_COM
)
END)
WHERE P.cd_par = 2012
and P.cd_typ = 'OK' ; |