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 17/10/2007, 14h35   #1
Candidat au titre de Membre du Club
 
Inscription : octobre 2007
Messages : 75
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 75
Points : 12
Points : 12
Par défaut comment effectuer un tri sur une sous selection

Bonjour,
j'ai une requête qui calcul un écart entre deux valeurs et classe le résultat selon cet écart (descendant, de façon à trier les plus gros écarts)

Puis j'utilise l'instruction "FETCH FIRST 50 ROWS ONLY" de façon à ne sortir que les 50 plus gros écarts.

Une fois que ces 50 lignes sont sorties, je veux trier les résultats selon un ordre différent parmi les lignes sélectionnées.

Existe il une façon de rajouter ce tri supplémentaire dans la même requête (pour éviter de créer une table intermédiaire)

Merci
stephyugh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2007, 21h01   #2
Invité de passage
 
Inscription : octobre 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 2
Points : 2
Points : 2
Bonjour,

Tu peux essayer un select imbriqué :

Select A.Champ1, A.champ2 ...
from (
Select champ1, champ2 ... from table1
order by ...
FETCH FIRST 50 ROWS ONLY ) as A
order by ...;

Je nai pas testé, mais je pense que ça devrait marcher.
erkeal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2007, 07h40   #3
Membre habitué
 
Inscription : septembre 2004
Messages : 123
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 123
Points : 127
Points : 127
Bonjour,

ça dépend de la plateforme. La solution de erkeal a une bonne tête pour Linux Unix Windows. Sur z/OS, en V7 et V8, ça ne marche pas, en V9 peut-être. Et pour AS/400, j'en sais rien.

D'une manière générale sur ce forum, il faut toujours préciser l'OS (ou il faudrait peut-être divisé le forum DB2 en 3).

Alex.
alex. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2007, 08h24   #4
Candidat au titre de Membre du Club
 
Inscription : octobre 2007
Messages : 75
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 75
Points : 12
Points : 12
En effet c'est sur AS400 et cette solution ne semble pas fonctionner, pas possible de mettre un order by et FECTH dans une sous requête.
stephyugh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2007, 08h33   #5
Candidat au titre de Membre du Club
 
Inscription : octobre 2007
Messages : 75
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 75
Points : 12
Points : 12
Oups, autant pour moi la réponse de Erkeal fonctionne très bien !
Merci beaucoup.
stephyugh est dé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 00h25.


 
 
 
 
Partenaires

Hébergement Web