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 :
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
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
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?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2Nom de colonne non valide : 'totalSold'.
Partager