Bonsoir le forum,
Voici mon problème
Je travaille sur SQL Server 2005 et dispose d’une table de ce type :
Je souhaite obtenir une vue du type
Où les ValeurProrataX valent ValeurX x Dividende / Diviseur.
Faut-il mieux faire directement :Ou passer par une vue intermédiaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT MaTable.Clef, MaTable.Valeur1 * MaTable.Dividende / MaTable.Diviseur AS ValeurProrata1, MaTable.Valeur2 * MaTable.Dividende / MaTable.Diviseur AS ValeurProrata2, MaTable.Valeur3 * MaTable.Dividende / MaTable.Diviseur AS ValeurProrata3 FROM MaTableJ’ai l’impression que malgré la jointure, la deuxième solution fait moins d’opérations que la première.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 /* Vue "Ratios" */ SELECT MaTable.Clef, MaTable.Dividende / MaTable.Diviseur AS Ratio FROM MaTable SELECT MaTable.Clef, Ratios.Ratio * MaTable.Valeur1 AS ValeurProrata1, Ratios.Ratio * MaTable.Valeur1 AS ValeurProrata2, Ratios.Ratio * MaTable.Valeur1 AS ValeurProrata3 FROM MaTable, Ratios WHERE MaTable.Clef = Ratios.Clef
Il faut également savoir que j’ai une quinzaine de Valeurs et que le calcul du Ratio est plus complexe qu’une simple division (traitement à base de dates).
Le volume de données traitées ne sera pas important, et les deux solutions pourraient fonctionner, mais je me demandais quel était la meilleure ??
Merci d’avance et bonne soirée
Partager