Bonjour à vous,
Il y a un certains temps que je tourne en rond avec ce problème.
Pour simplifier, j'ai une table composée de 4 champs. Les 3 premiers champs sont au format date et le quatrième champs au format texte. Dans ce quatrième champs la valeur représente le champs date à sélectionner parmi les 3 premiers en vue du tri (ORDER BY), soit option, confirmé et annulé :
date_option | date_confirm | date_annul | etat_activite |
--------------------------------------------------------
2012-02-02 | 2012-02-06 | 0000-00-00 | confirmé
2012-01-10 | 2012-01-11 | 2012-01-15 | annulé
2012-03-14 | 0000-00-00 | 0000-00-00 | option
2012-04-03 | 2012-04-06 | 0000-00-00 | confirmé
2012-03-21 | 2012-03-24 | 0000-00-00 | confirmé
--------------------------------------------------------
J'aimerais donc appliquer la clause ORDER BY [?] DESC afin d'afficher les résultats par ordre de date la plus récente des 3 champs :
date_option | date_confirm | date_annul | etat_activite |
--------------------------------------------------------
2012-04-03 | 2012-04-06 | 0000-00-00 | confirmé
2012-03-21 | 2012-03-24 | 0000-00-00 | confirmé
2012-03-14 | 0000-00-00 | 0000-00-00 | option
2012-02-02 | 2012-02-06 | 0000-00-00 | confirmé
2012-01-10 | 2012-01-11 | 2012-01-15 | annulé
--------------------------------------------------------
J'ai tenté d'utiliser la fonction GREATEST(), sans succès car cette fonction ne semble pas disponible avec MSSQL Express 2008.
Quelqu'un a une idée ?
Merci
Partager