Bonjour à toutes et à tous,
Je rencontre actuellement une difficulté dans une requête écrite en T-SQL sous SQL Server 2005. Ce que je souhaite obtenir est une division de deux champs calculés, cependant quoi que je fasse la requête ne fonctionne pas. En voici le code de la requête initiale:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
SELECT     Annee, Mois,
                          (SELECT     SUM(wh1.Montant) AS Expr1
                            FROM          working_hours AS wh1 INNER JOIN
                                                   nomenclature_en AS en ON en.Nomenclature = wh1.Nomenclature
                            WHERE      (en.id_niveau_1 = 'SLD') AND (wh1.Annee = wh.Annee) AND (wh1.Mois = wh.Mois)) AS totalSold,
                          (SELECT     SUM(wh2.Montant) AS Expr2
                            FROM          working_hours AS wh2 INNER JOIN
                                                   nomenclature_en AS en ON en.Nomenclature = wh2.Nomenclature
                            WHERE      (en.id_niveau_1 = 'USLD') AND (wh2.Annee = wh.Annee) AND (wh2.Mois = wh.Mois)) AS totalUnsold
FROM         working_hours AS wh
GROUP BY Annee, Mois

Maintenant le calcul que je souhaite ajouter : la division de totalSold par totalUnsold :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
SELECT     Annee, Mois, totalSold/totalUnsold,
                          (SELECT     SUM(wh1.Montant) AS Expr1
                            FROM          working_hours AS wh1 INNER JOIN
                                                   nomenclature_en AS en ON en.Nomenclature = wh1.Nomenclature
                            WHERE      (en.id_niveau_1 = 'SLD') AND (wh1.Annee = wh.Annee) AND (wh1.Mois = wh.Mois)) AS totalSold,
                          (SELECT     SUM(wh2.Montant) AS Expr2
                            FROM          working_hours AS wh2 INNER JOIN
                                                   nomenclature_en AS en ON en.Nomenclature = wh2.Nomenclature
                            WHERE      (en.id_niveau_1 = 'USLD') AND (wh2.Annee = wh.Annee) AND (wh2.Mois = wh.Mois)) AS totalUnsold
FROM         working_hours AS wh
GROUP BY Annee, Mois
Malheureusement pour moi cette syntaxe est incorrecte, j'obtiens le message d'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Nom de colonne non valide : 'totalSold'.
J'ai réussi à trouver un topic sur le forum concernant un problème proche, cependant la solution apportée ne fonctionne pas dans le cas de ma requête. Pourriez-vous m'apporter de l'aide, s'il vous plaît?