Bonjour à tous,
Soit la table suivante, décrivant des jours de travail se rapportant à des "activités":
Je souhaite obtenir le total des heures travaillées pour chaque activité.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 mysql> SELECT * FROM test ; +---------+-------------+------------+-------+------+ | id_date | id_activity | date | hours | type | +---------+-------------+------------+-------+------+ | 1 | 1 | 2006-08-15 | 5 | C | | 2 | 1 | 2006-10-01 | 3 | P | | 3 | 2 | 2006-09-31 | 2 | C | | 4 | 2 | 2006-10-01 | 5 | P | +---------+-------------+------------+-------+------+
Jusque là, ça va, mais je me demande comment se fait la sélection de la date retenue pour chaque activité: s'agit-il de la première selon l'ordre de la clé primaire (soit ici id_date) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 mysql> SELECT id_activity,date,SUM(heures) FROM test GROUP BY id_activity; +-------------+------------+------------+ | id_activity | date | SUM(hours) | +-------------+------------+------------+ | 1 | 2006-08-15 | 8 | | 2 | 2006-09-31 | 7 | +-------------+------------+------------+ 2 rows in set (0.01 sec)
À présent, je souhaite obtenir le même résultat, mais en choisissant la date, parmi les lignes regroupées) en fonction du "type". Est-ce possible ?
En poussant les choses un peu plus loin, est-il possible de choisir la date la plus ancienne ou la plus récente, toujours parmi les lignes ainsi regroupées ?
Merci d'avance,
Gvdmoort
Partager