Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/11/2011, 13h24   #1
Nouveau Membre du Club
 
Mickaël
Inscription : février 2011
Messages : 82
Détails du profil
Informations personnelles :
Nom : Mickaël

Informations forums :
Inscription : février 2011
Messages : 82
Points : 37
Points : 37
Par défaut Ordonner sur 3 colonnes

Bonjour,
Je cherche à trier sur 3 colonne pour une édition (SGBD: DB2 sur ISeries). Grosso modo:

Code :
1
2
3
4
5
 
SELECT FAMLIB,  SFAMLIB, ARTLIB
FORM ARTICLES 
INNER JOIN SOUSAFAMILLES ON ARTICLES.SF=SOUSFAMILLES.SFAMINDEX
INNER JOIN FAMILLES ON SOUSFAMILLE.FAM=FAMILLES.FAMINDEX
Je joins 3 tables: famille Sous-famille et article.

Code :
ORDER BY FAMLIB, SFAMLIB
Je classe par famille puis par sous-famille. ceci marche très bien.
Le problème c'est quand je veux ordonner en plus sur la désignation des articles à l'intérieur des sous-familles:

Code :
1
2
 
ORDER BY FAMLIB, SFAMLIB, ARTLIB
En fait le résultat est uniquement trié sur le champ ARTLIB et les familles et sous-familles se retrouvent mélangées!! Je comprends pas pourquoi là!?
Merci pour votre aide
MickSou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 13h38   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 657
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 657
Points : 2 660
Points : 2 660
bonjour,

sur db2 iseries si votre requête est :
Code :
1
2
3
4
5
6
 
SELECT FAMLIB,  SFAMLIB, ARTLIB
FORM ARTICLES 
INNER JOIN SOUSAFAMILLES ON ARTICLES.SF=SOUSFAMILLES.SFAMINDEX
INNER JOIN FAMILLES ON SOUSFAMILLE.FAM=FAMILLES.FAMINDEX 
ORDER BY FAMLIB, SFAMLIB, ARTLIB
l'order by sur les 3 colonnes sera respecté.

que veux dire :
Citation:
grosso mode
?

M'est avis que vous avez exécuté une requete différente que celle présentée, ou que vous utiliséz un logiciel hors systeme i navigator / strsql pour visualiser votre résultat.
punkoff est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 13h42   #3
Nouveau Membre du Club
 
Mickaël
Inscription : février 2011
Messages : 82
Détails du profil
Informations personnelles :
Nom : Mickaël

Informations forums :
Inscription : février 2011
Messages : 82
Points : 37
Points : 37
Bonjour,
Merci pour votre aide..
En effet la requete était légèrement différente (je simplifie toujours avant de poster ici mais ne sais pas si c'est une bonne idée??)
Code :
1
2
3
4
5
SELECT ARTLIB
FORM ARTICLES 
INNER JOIN SOUSAFAMILLES ON ARTICLES.SF=SOUSFAMILLES.SFAMINDEX
INNER JOIN FAMILLES ON SOUSFAMILLE.FAM=FAMILLES.FAMINDEX 
ORDER BY FAMLIB, SFAMLIB, ARTLIB
En fait je sélectionnais dans le select une seule des trois colonnes de l'ORDER BY, la troisème.
Tant que celle-ci n'y était pas cela marchait mais lorsqu'elle apparaissait dans ORDER BY il semble qu'elle devenait prioritaire pour le calssement!!
Est-ce normal? je ne connaissais pas!
MickSou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 14h50   #4
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 435
Points : 10 435
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Il n'y a pas de prioritaire en fonction de la sélection ou pas.
L'order by trie en fonction de l'ordre des colonnes que vous lui indiquez.
Votre requête trie d'abord par FAMLIB, puis par SFAMLIB et enfin par ARTLIB.

Si vous voulez trier par ARTLIB, il faut écrire ORDER BY ARTLIB.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 15h15   #5
Nouveau Membre du Club
 
Mickaël
Inscription : février 2011
Messages : 82
Détails du profil
Informations personnelles :
Nom : Mickaël

Informations forums :
Inscription : février 2011
Messages : 82
Points : 37
Points : 37
Pourtant si je vous assure que lorsque la requête était celle-ci:
Code :
1
2
3
4
5
SELECT ARTLIB
FORM ARTICLES 
INNER JOIN SOUSAFAMILLES ON ARTICLES.SF=SOUSFAMILLES.SFAMINDEX
INNER JOIN FAMILLES ON SOUSFAMILLE.FAM=FAMILLES.FAMINDEX 
ORDER BY FAMLIB, SFAMLIB, ARTLIB
le tri se faisait d'abord sur ARTLIB... Croyez moi j'ai cru en perdre mon latin!!

Code :
1
2
3
4
5
SELECT FAMLIB, SFAMLIB, ARTLIB
FORM ARTICLES 
INNER JOIN SOUSAFAMILLES ON ARTICLES.SF=SOUSFAMILLES.SFAMINDEX
INNER JOIN FAMILLES ON SOUSFAMILLE.FAM=FAMILLES.FAMINDEX 
ORDER BY FAMLIB, SFAMLIB, ARTLIB
ordonne bien selon FAMLIB, SFAMLIB puis ARTLIB!

Etrange!?
MickSou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 15h19   #6
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 657
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 657
Points : 2 660
Points : 2 660
J'ai eu des problèmes similaire sur cette plateforme.
punkoff est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h59.


 
 
 
 
Partenaires

Hébergement Web