Rechercher : dans
Par :

Requette SQL et tri des champs

Dernière réponse le 25 mar 2008 à 10:47:30 cartman1706, le 28 mar 2006 à 21:28:42 
 Signaler ce message aux modérateurs

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 CarTman SpiRit Is gOOd fOr You !

Meilleures réponses pour « Requette SQL et tri des champs » dans :
SQL - Tri Voir Tri des résultats Il est possible en SQL d'organiser les résultats grâce à la clause ORDER BY. La clause ORDER BY est suivie des mots clés ASC ou DESC, qui précisent respectivement si le tri se fait de manière croissante (par défaut) ou...
SQL - éviter les doublons dans un SELECT VoirProblème Comment éviter les doublons dans les résultats d'une requête SQL ? Solution Il suffit d'utiliser la clause DISTINCT entre SELECT et les champs. Exemple : SELECT distinct id,nom,prenom FROM matable Plus d'informations ...
SQL - Création de table VoirLe SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. La création de tables Le création de tables se fait à l'aide du couple de mots-clés CREATE...
SQL - Jointures VoirExpression des jointures Une jointure (ou θ-jointure) est un produit cartésien de deux tables. On appelle équijointure une θ-jointure dont la qualification est une égalité entre deux colonnes. En SQL, l'expression d'une jointure se...
SQL - Contraintes d'intégrité VoirExpression de contraintes d'intégrité Une contrainte d'intégrité est une clause permettant de contraindre la modification de tables, faite par l'intermédiaire de requêtes d'utilisateurs, afin que les données saisies dans la base soient...

1

zenon, le 28 mar 2006 à 21:43:20

Tu as essayé en "fractionnant" la date du type:

Order By Month (DateEvenement) Desc, Year (DateEvenement) ?

Répondre à zenon

2

cartman1706, le 29 mar 2006 à 00:34:32

Non, je ne connais pas cette fonction.
dois-je la taper telle quel ? CarTman SpiRit Is gOOd fOr You !

Répondre à cartman1706

3

zenon, le 29 mar 2006 à 13:14:26

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().

Répondre à zenon

4

ricric, le 29 mar 2006 à 15:47:25

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').

Répondre à ricric

5

cartman1706, le 5 avr 2006 à 09:59:00

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 !

CarTman SpiRit Is gOOd fOr You !

Répondre à cartman1706

6

 eaque49, le 25 mar 2008 à 10:47:30

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

Répondre à eaque49