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:
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.
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
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.
Partager