Bonjour,
Je souhaiterais optimiser un update de ce type :
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
	   )
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