Bonjour je souhaite réaliser la requête suivante :
Compter le nombre d'affaires qui ont tel Id_statut max pour tel mois sachant
que tant que le statut d'une affaire ne change pas on la compte comme ayant ce statut dans le mois suivant :
Voici le modèle de la table
Id_affaire (int)
date (datetime)
Id_statut
Typiquement je peux avoir les enregistrements suivants :
Id_affaire date Id_statut
150 2008-10-03 5
150 2008-10-25 3
150 2008-04-15 7
200 2008-04-08 7
200 2009-01-20 3
Je veux ressortir
Date Id_statut NB
2008-10 3 1
2008-10 5 0
2008-10 7 0
2008-04 3 0
2008-04 5 0
2008-04 7 2
2009-01 3 1
2009-01 5 0
2009-01 7 0
Pouvez vous m'aider ?
j'ai commencé par cela mais ca ne fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT DISTINCT DATE_FORMAT( aff.date_creation, '%Y-%m' ) AS month, aff.Id_statut, (SELECT count(Id_affaire) FROM historique_statut as hs1 WHERE hs1.Id_statut = (SELECT max(Id_statut) FROM historique_statut as hs2 WHERE hs2.Id_affaire=hs1.Id_affaire AND DATE_FORMAT( hs2.date, '%Y-%m' ) = month) AND DATE_FORMAT( hs1.date, '%Y-%m' ) = month ) FROM affaire AS aff ORDER BY month
Partager