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 21/06/2006, 10h34   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2005
Messages : 31
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 31
Points : 12
Points : 12
Par défaut Tri d'un resultset (hard)

Bonjour à tous,

J'ai une table BRANCHE qui contient 3 champs (pour l'exemple) : BRANCHE_ID (integer), BRANCHE_POSITION (varchar) et BRANCHE_LIBELLE (varchar).
Voici une requête toute simple :

SELECT BRANCHE_ID, BRANCHE_POSITION, BRANCHE_LIBELLE
FROM BRANCHE
ORDER BY BRANCHE_POSITION ASC

Cette query me retourne ce resultset :

Code :
1
2
3
4
5
6
7
8
9
10
BRANCHE_ID BRANCHE_POSITION BRANCHE_LIBELLE
1          01               AAA
2          0101             BBB
3          0102             CCC
4          02               GGG
5          0201             DDD
6          0202             FFF
7          03               EEE
8          0301             BBB
9          0302             AAA
Ce resultset me permet de créer une arborescence triée en fonction de l'ordre d'encodage.
A l'affichage ça donne :

Code :
1
2
3
4
5
6
7
8
9
- AAA
   - BBB
   - CCC
- GGG
   - DDD
   - FFF
- EEE
   - BBB
   - AAA
Une BRANCHE_POSITION (x fois 2 chiffres consécutifs) offre de multiples informations (décalage par rapport à la racine, ordre des frères, qui est son parent etc.)
Jusque là c'est plutôt simple, si à l'encodage l'utilisateur souhaite insérer une branche au milieu de tout, il suffit de modifier les BRANCHE_POSITION et le tour est joué.

Maintenant, ce que je souhaiterais faire, c'est de laisser l'utilisateur encoder là où il veut, mais à l'affichage de trier l'arbre automatiquement sur le libellé, tout en gardant la notion de parent (un enfant doit rester enfant de son parent)...

Le résultat souhaité est donc

Code :
1
2
3
4
5
6
7
8
9
10
BRANCHE_ID BRANCHE_POSITION BRANCHE_LIBELLE
1          01               AAA
2          0101             BBB
3          0102             CCC
7          03               EEE
9          0302             AAA
8          0301             BBB
4          02               GGG
5          0201             DDD
6          0202             FFF
Code :
1
2
3
4
5
6
7
8
9
- AAA
   - BBB
   - CCC
- EEE
   - AAA
   - BBB
- GGG
   - DDD
   - FFF
Pensez-vous que c'est réalisable directement en SQL ou dois-je obligatoirement trier l'arborescence via la page de présentation?

Merci pour votre aide, et bon casse tête ;-)
autofill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 10h13   #2
Candidat au titre de Membre du Club
 
Inscription : juin 2005
Messages : 31
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 31
Points : 12
Points : 12
Personne pour m'aider
autofill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 15h01   #3
jab
Rédacteur
 
Avatar de jab
 
Homme Jean-Alain Baeyens
SharePoint developpeur
Inscription : février 2004
Messages : 1 172
Détails du profil
Informations personnelles :
Nom : Homme Jean-Alain Baeyens
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : SharePoint developpeur
Secteur : Service public

Informations forums :
Inscription : février 2004
Messages : 1 172
Points : 3 131
Points : 3 131
Envoyer un message via ICQ à jab Envoyer un message via MSN à jab Envoyer un message via Skype™ à jab
Ben apparement ce n'est pas trop possible ou en tout cas cela semble très difficile. Perso je ne vois pas trop comment tu pourrais faire. Peux-être avec une commande récursive. Je pense que c'est la seul piste à suivre.
jab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2006, 14h44   #4
Candidat au titre de Membre du Club
 
Inscription : juin 2005
Messages : 31
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 31
Points : 12
Points : 12
Merci, mais je ne sais pas comment faire de la la récursivité en DB2.
Je vais rester sur mon idée de départ à savoir trier via la page de présentation. A moins que je ne trouve mieux entre-temps.

A bientôt.
autofill est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h16.


 
 
 
 
Partenaires

Hébergement Web