Optimisation Update sur champs multiples
Bonjour,
Je souhaiterais optimiser un update de ce type :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| update TablePrincipale
set somme1=(select sum(montant1*produit)
FROM TableSecondaire
WHERE TablePrincipale.ID=TableSecondaire.ID
)
,somme2=(select sum(montant2/produit)
FROM TableSecondaire
WHERE TablePrincipale.ID=TableSecondaire.ID
)
,somme3=(select sum(montant1*produit)
FROM TableSecondaire
WHERE TablePrincipale.ID=TableSecondaire.ID
) |
Comme vous le voyez, mes champs "somme1" et "somme3" sont calculés selon la même manière : je cherche donc à ne faire la sous requête qu'une seule fois. Je trouve comment faire sur oracle sur le net (syntaxe du genre update table set (somme1,somme3)=(select...) ) mais cette syntaxe n'est pas valable pour sql server.
A noter : ma sous requête fait une jointure sur l'id de la table à mettre à jour : je ne pense donc pas pouvoir pré calculer la valeur de somme1 et somme 3 par avance
Merci pour votre aide