Bonjour,
Je souhaiterais optimiser un update de ce type :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 )
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
Partager