Bonjour,

Je souhaite faire des stats par campagne sur une table du type:

--------------------------------------------------------------------
| ID | NomProduit | Date_Time | mesure1 | mes2 | mes3.....
--------------------------------------------------------------------
| 10 | A | jj/mm/aaaa hh:mm:ss | | |
| 11 | A | jj/mm/aaaa hh:mm:ss | | |
| 12 | A | jj/mm/aaaa hh:mm:ss | | |
| 13 | A | jj/mm/aaaa hh:mm:ss | | |
| 14 | B | jj/mm/aaaa hh:mm:ss | | |
| 15 | B | jj/mm/aaaa hh:mm:ss | | |
| 16 | B | jj/mm/aaaa hh:mm:ss | | |
| 17 | B | jj/mm/aaaa hh:mm:ss | | |
| 18 | B | jj/mm/aaaa hh:mm:ss | | |
| 19 | A | jj/mm/aaaa hh:mm:ss | | |
| 20 | A | jj/mm/aaaa hh:mm:ss | | |
| 21 | A | jj/mm/aaaa hh:mm:ss | | |
| 22 | A | jj/mm/aaaa hh:mm:ss | | |

Si je souhaite par exemple obtenir la liste des 10 dernières campagnes (lots) avec leur 'date de début' et leur 'date de fin' en faisant une requête du type:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
SELECT ma_table.ID,
       ma_table.NomProduit,
       MIN(ma_table.Date_Time) AS Debut,
       MAX(ma_table.Date_Time) AS Fin
  FROM ma_base.ma_table ma_table
 WHERE (ma_table.Date_Time BETWEEN 'Date1' AND 'Date2')
GROUP BY ma_table.NomProduit
ORDER BY 3 DESC
LIMIT 10
j'ai la 'date de début' de la première campagne A et la 'date de fin' de la dernière campagne A au lieu de la date de début et de fin de chaque campagne.

Une idée:
- mettre les données de la période dans une table temporaire
- insérer un champ (NumLot) qui s'incrémenterait automatiquement à chaque fois que NomProduit change de valeur de façon à pouvoir faire un GROUP BY NumLot?

Comment faire? Voyez vous une autre solution?

Merci d'avance.