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