Requette SQL et tri des champs

Fermé
cartman1706 Messages postés 279 Date d'inscription jeudi 9 novembre 2000 Statut Membre Dernière intervention 21 juillet 2020 - 28 mars 2006 à 21:28
eaque49 Messages postés 13 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 23 décembre 2008 - 25 mars 2008 à 10:47
Bonjour tous le monde,

je suis en train de faire une requette SQL sur mon forum qui est destinée sortir tous les champs d'un "theme" ordonnés en decroissant par rapport a la "date" et a l'"heure" :

SELECT * FROM `forum` WHERE theme like "Annif de Chmilou" order by date DESC, heure desc


le probleme que j'ai est que cette requete ne fait pas correctement le tri. en effet, si les jours, mois et heures sont bien decroissante, ce n'est pas le cas pour l'annee ! il me met le bon tri de l'annee 2005 anant celui de l'annee 2006.

en clair j'amerais que le tri soit decroissant sur le jour, le mois, et l'heure mais croissant sur l'annee.

le champ "date" et sous la forme "01/02/06"
le champ heure est sous la forme "20 : 15"



Merci de votre aide

6 réponses

zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 181
29 mars 2006 à 13:14
Bin, je ne sais pas dans quelle appli tu travailles.

La syntaxe n'est pas tout à fait la même ds access ou MySQL par exemple.

Je ne suis par certain que la fct Month() ou Year() qui extrait le mois ou l'année d'une date sous Access existent sous MySQL...

Tu peux en tous cas essayer en l'ajoutant à ton critère Order By. Il faut bien sûr remplacer "DateEvenement" par le vrai nom de ton champ date.
En access en tous cas, je pense qu'on ne pourrait pas l'appeler "Date". Il y aurait une ambiguïté avec la variable Date().
1
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 181
28 mars 2006 à 21:43
Tu as essayé en "fractionnant" la date du type:

Order By Month (DateEvenement) Desc, Year (DateEvenement) ?
0
cartman1706 Messages postés 279 Date d'inscription jeudi 9 novembre 2000 Statut Membre Dernière intervention 21 juillet 2020 37
29 mars 2006 à 00:34
non, je ne connais pas cette fonction.
dois-je la taper telle quel ?
0
ricric Messages postés 34 Date d'inscription jeudi 12 mai 2005 Statut Membre Dernière intervention 11 mai 2006 7
29 mars 2006 à 15:47
SELECT * FROM `forum`
WHERE theme like "Annif de Chmilou"
ORDER BY YEAR(date) ASC, date DESC

Il faudra peut-être mettre la date sous la forme yyyy-mm-dd pour que la fonction YEAR() et le tri sur la colonne 'date' fonctionnent.

SELECT * FROM `forum`
WHERE theme like "Annif de Chmilou"
ORDER BY YEAR(date) ASC, date DESC, heure DESC
(j'ai rajouté la colonne 'heure').
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cartman1706 Messages postés 279 Date d'inscription jeudi 9 novembre 2000 Statut Membre Dernière intervention 21 juillet 2020 37
5 avril 2006 à 09:59
désolé les gens de ne pas avoir repondu plus tot !

Merci beaucoup pour vos explications, je vas essayer.

ps : je travaille sous PHPMyAdmin ... donc en MySQL !

0
eaque49 Messages postés 13 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 23 décembre 2008
25 mars 2008 à 10:47
Bonjour je remonte se post car j'ai le même soucis je voudrais faire un tri par mois et je voudrais demander quel mois.
je suis sous OPENBASE
actuellement j'ai la composition ci dessous:

Select nom, prenom, datenaiss, count(journee), count(demijournee)
From personne, activité
Where (jointure entre personne et activité)
Group By nom, prenom, datenaiss

dans la table activité j'ai la colonne date qui est en format date JJ:MM:AA

J'ai essayé de rajouter à la fin:
ORDER BY month(date) ASC

mais celui ne fonctionne pas de plus je ne trouve pas de méthode qui marche pour demander quelle mois je souhaiter afficher aussi.

Je tiens à remercier d'avance les personnes qui se pencherons sur mon problème

Cordialement JF
0