Bonjour à tous

A partir de la table suivante:

CODE|DATE|STATUT
1005|02/03/2012|A
1005|03/03/2012|A

1005|04/03/2012|B
1005|05/03/2012|A
1005|06/03/2012|A

1002|02/03/2012|C
1002|03/03/2012|C

1002|04/03/2012|B

Je suis à la recherche de la requête qui me permettrait d'obtenir le résultat suivant:

CODE|DATE_DEBUT|DATE_FIN|RANG|STATUT
1005|02/03/2012|03/03/2012|1|A
1005|04/03/2012|04/03/2012|2|B
1005|05/03/2012|06/03/2012|3|A

1002|02/03/2012|03/03/2012|1|C
1002|04/03/2012|04/03/2012|2|B



C'est à dire que pour chaque code, je ne veux garder que chaque période distincte sans changement de statut dans le temps, ordonnées chronologiquement (en prenant en compte comme dans mon exemple qu'on peut très bien revenir à un statut précédent). J'imagine qu'il faut jouer avec la fonction RANK mais je n'arrive pas à m'en rendre maître pour le moment.

Merci beaucoup de votre aide.

PS: Je suis désolé si je n'utilise pas les bonnes balises, je ne suis pas parvenu à retrouver la charte sur le forum. Je corrigerais mon message dès que j'aurais trouvé ça.