[Requête SQL] Optimisation de plusieurs UPDATE SET FROM
Bonjour à tous,
Je crée une table temporaire qui va contenir tout un tas d'indicateurs. Je réalise d'abord un INSERT INTO pour créé les lignes de ma table et ensuite je réalise différents UPDATE ... SET ... FROM pour mettre à jour les différentes colonnes de ma table comme ci-dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
UPDATE @ReturnTable
SET Bon = Qte
FROM (SELECT TEMP.Nom AS [RESULT_Nom], COUNT(DISTINCT TEMP.Numero) AS [Qte], TEMP.FluxID AS [RESULT_FluxID], P.NumeroBadge
FROM @table_temporaire AS TEMP
INNER JOIN PASSAGES P WITH (nolock) ON P.Numero = TEMP.Numero AND P.NumeroBadge = TEMP.NumeroBadge AND P.ResultatControle = 1 AND DateHeure > @todayDate
GROUP BY TEMP.Nom, TEMP.FluxID, P.NumeroBadge) AS [RESULT]
WHERE Operateur = RESULT_Nom AND FluxID = RESULT_FluxID
/********************************************************/
UPDATE @ReturnTable
SET Retours = Qte
FROM (SELECT TEMP.Nom AS [RESULT_Nom], COUNT(DISTINCT TEMP.Numero) AS [Qte], TEMP.FluxID AS [RESULT_FluxID], P.NumeroBadge
FROM @table_temporaire AS TEMP
INNER JOIN PASSAGES P WITH (nolock) ON P.Numero = TEMP.Numero AND P.NumeroBadge = TEMP.NumeroBadge AND P.ResultatControle = 0 AND DateHeure > @todayDate
GROUP BY TEMP.Nom, TEMP.FluxID, P.NumeroBadge) AS [RESULT]
WHERE Operateur = RESULT_Nom AND FluxID = RESULT_FluxID |
J'aurais voulu savoir si il existe une syntaxe SQL me permettant de mettre à jour toutes les colonnes directement sachant que pour les différents UPDATE, les conditions dans les clause WHERE sont identiques. Quelque chose qui ressemblerait au code ci-dessous :
Code:
1 2 3 4 5 6
|
UPDATE @ReturnTable
SET CFBon = (SELECT ... FROM ... WHERE)
SET RetoursCF = (SELECT ... FROM ... WHERE)
...
WHERE Operateur = RESULT_Nom AND FluxID = RESULT_FluxID |
D'avance merci pour vos réponses.
Dens19