Précédent   Forum du club des développeurs et IT Pro > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 21/12/2012, 14h54   #1
nico_loin
Invité de passage
 
Homme Nicolas
Développeur informatique
Inscription : décembre 2012
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2012
Messages : 26
Points : 0
Points : 0
Par défaut Trier par note et si c'est la même note, trier par date

Bonjour,
Je cherche à faire une requete qui me retourne la note, puis le nom par ordre décroissant de la note, mais si y'a 2 notes égales, afficher les 2 notes mais par odre décroissant de date.
Alors, j'ai 2 tables : dans une table j'ai un champ NOM et DATE. Dans la 2e table, j'ai la NOTE pour chaque NOM.
En gros, dans la 1e table j'ai ça par exemple :
NOM | DATE | NOTE
Jean | 01/04/2012 | 10
Jean | 01/07/2012 | 0
Dupont | 01/10/2012 | 7
Henri | 01/11/2012 | 7

et dans la 2e table j'ai :
NOM | NOTE
Jean | (moyenne des 2 notes) donc 5
Dupont | 7
Henri | 7

Dans mon résultat, je dois avoir la note par ordre décroissant, mais vu que dupont et henri ont tout les deux 7, je dois afficher d'abord la note de Henri vu que c'est le dernier à avoir une note, puis la note de Dupont, et enfin la note de Jean
En gros
NOTE | NOM
7 | Henri
7 | Dupont
5 | Jean

J'ai fait ça comme requete mais ça ne les tri pas comme je veux :
Code sql :
SELECT t1.NOTE, t1.NOM FROM table1 t1, table2 t2 n WHERE t1.NOM=t2.NOM ORDER BY t1.dateNotation DESC, t1.noteMoyenne DESC
nico_loin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2012, 14h59   #2
tatayo
Expert Confirmé
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 583
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 583
Points : 3 182
Points : 3 182
Bonjour,
Il suffit d'inverser les deux colonnes dans la clause order-by:
Code SQL :
1
2
3
4
5
 
SELECT t1.NOTE, t1.NOM
FROM table1 t1
INNER JOIN table2 t2  ON t1.NOM=t2.NOM
ORDER BY t1.noteMoyenne DESC,t1.dateNotation DESC

Tatayo.

P.S. à quoi sert la jointure, vu que T2 n'intervient null part ?
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/12/2012, 15h09   #3
nico_loin
Invité de passage
 
Homme Nicolas
Développeur informatique
Inscription : décembre 2012
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2012
Messages : 26
Points : 0
Points : 0
Car la date est dans la 1e table, et le nom + la note à afficher est dans la 2e table
Je vais essayer ça
nico_loin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2012, 15h17   #4
nico_loin
Invité de passage
 
Homme Nicolas
Développeur informatique
Inscription : décembre 2012
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2012
Messages : 26
Points : 0
Points : 0
Merci pour ton aide, ca marche, j'avais essayé tellement de choses alors que c'était juste l'ordre des champs c'est dingue !!
nico_loin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 20h06.


 
 
 
 
Partenaires

Hébergement Web