[SQL SERVER 2K5]Division de champs calculés dans la commande SELECT
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:
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:
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:
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?