Hello.
Donc, une fois n'est pas coutume, j'ai déjà la requête. Mais je ne la trouve pas propre, j'aimerai donc votre avis ainsi que vos solutions plus classes.
J'ai une table qui contient notamment 3 champs : CategoryID, Date et Value.
Je dois produire des statistiques dessus. Il me faut pour chaque categorie : La somme des valeurs, la valeur moyenne, la valeur max ET la date associée à cette valeur max.
Voici ma requête pour le moment:
Donc la liste des choses que j'aime pas dedans:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT hd1.CategoryID AS CategoryID, SUM(hd1.Value) AS TotalValue, AVG(hd1.Value) AS AverageValue, MAX(hd2.Value) AS MaxValueValue, MAX(hd2.Date) AS MaxValueDate FROM HistoricalData hd1 JOIN HistoricalData hd2 ON hd2.Value = (SELECT MAX(hd3.Value) FROM HistoricalData hd3 WHERE hd3.CategoryID = hd1.CategoryID) GROUP BY hd1.CategoryID
- Le MAX(hd2.Value) et le MAX(hd2.Date) parce que ce n'est absolument pas un maximum parmi plusieurs valeurs, j'ai du faire un mauvais join.
- La manière de récupérer la valeur maximale et sa date associée pour une catégorie définie.
- Avoir 3x la même table dans la requête.
Merci beaucoup de votre aide.
Nuwanda
Partager