Bonjour à tous,

Soit la table suivante, décrivant des jours de travail se rapportant à des "activités":

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    |
+---------+-------------+------------+-------+------+
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 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)
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) ?
À 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