IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

requête qui fait mal à la tête


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 35
    Points : 28
    Points
    28
    Par défaut requête qui fait mal à la tête
    Salut les pros,

    J'ai une requête à faire, cela semble simple, mais c'est très compliqué , du moins pour moi.

    J'ai une table Persons(Person_id, Parent_person_id) --> facile à comprendre : relation parent/enfant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE Persons
    (
        person_id        INTEGER,
        parent_person_id INTEGER
    )
    Maintenant ce que je veux : afficher les personnes par ordre (disons genéalogique).
    Avec les données suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    INSERT INTO Persons (person_id , parent_person_id) VALUES ( 1, 0);
    INSERT INTO Persons (person_id , parent_person_id) VALUES ( 2, 1);
    INSERT INTO Persons (person_id , parent_person_id) VALUES ( 3, 1);
    INSERT INTO Persons (person_id , parent_person_id) VALUES ( 4, 1);
    INSERT INTO Persons (person_id , parent_person_id) VALUES ( 5; 2);
    INSERT INTO Persons (person_id , parent_person_id) VALUES ( 6, 2);
    INSERT INTO Persons (person_id , parent_person_id) VALUES ( 7, 3);
    INSERT INTO Persons (person_id , parent_person_id) VALUES ( 8, 4);
    INSERT INTO Persons (person_id , parent_person_id) VALUES ( 9, 4);
    INSERT INTO Persons (person_id , parent_person_id) VALUES (10, 4);
    INSERT INTO Persons (person_id , parent_person_id) VALUES (11, 5);
    INSERT INTO Persons (person_id , parent_person_id) VALUES (12, 5);
    INSERT INTO Persons (person_id , parent_person_id) VALUES (13, 6);
    INSERT INTO Persons (person_id , parent_person_id) VALUES (14, 7);
    INSERT INTO Persons (person_id , parent_person_id) VALUES (15, 7);
    INSERT INTO Persons (person_id , parent_person_id) VALUES (16, 8);
    INSERT INTO Persons (person_id , parent_person_id) VALUES (17, 9);
    INSERT INTO Persons (person_id , parent_person_id) VALUES (18,10);
    INSERT INTO Persons (person_id , parent_person_id) VALUES (19,10);
    Je voudrais les afficher ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    11, 5
    12, 5
    13, 6
     6, 2
     2, 1
    14, 7 
    15, 7
     7, 3
     3, 1
    16, 8
     8, 4
    17, 9
     9, 4
    18,10 
    19,10
    10, 4
     4, 1
     1, 0
    Voila, on affiche d'abord les enfants, puis les parents... et toujours de manière à ce que les parents soient affichés apres tous les enfants et petit-enfants (j'espère que je me bien exprimé ).

    Merci.

  2. #2
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Quel est ton SGBD ?

    (c'est ma photo)
    Paku, Paku !
    Pour les jeunes incultes : non, je ne suis pas un pokémon...

    Le pacblog : http://pacmann.over-blog.com/

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par pacmann Voir le message
    Salut !

    Quel est ton SGBD ?
    SQL Server 2005

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Vous pouvez déjà étudier le calcul de la fermeture transitive, effectué avec SQL Server 2005 :

    http://www.developpez.net/forums/d91...s/#post5205169
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Vous pouvez déjà étudier le calcul de la fermeture transitive, effectué avec SQL Server 2005 :

    http://www.developpez.net/forums/d91...s/#post5205169
    merci, cest a peu pres le meme thème.

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/06/2007, 15h07
  2. Réponses: 3
    Dernier message: 27/01/2007, 09h11
  3. Requête qui fait une somme par ligne
    Par snoopy69 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 10/08/2006, 08h30
  4. [SQL] une requete qui fait mal a la tete
    Par MailOut dans le forum Langage SQL
    Réponses: 7
    Dernier message: 07/02/2005, 16h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo