Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
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 07/12/2011, 15h35   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 55
Points : 1
Points : 1
Par défaut Présentation Père/fils occurence

Bonjour,

J'ai deux tables de relation pere fils.

Pour avoir les fils du pere, je fais :
Code :
1
2
3
SELECT pere.nom, fils.nom
FROM pere, fils
WHERE Pere.id=fils.id
On obtient donc :

Alain | Mickael
Alain | Francois
Robert| Guillaume
Franck | Nicolas
Franck | Sébastien
Franck | Léo
Pas de soucis.
Par contre, comment faire, pour voir à l'affichage :

Alain | Mickael
       | Francois
Robert| Guillaume
Franck | Nicolas
          | Sébastien
          | Léo
En gros, une seule occurence du père affichée.

Merci d'avance
guil182 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 15h39   #2
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
La modélisation extrêmement douteuse mise de côté, essayez ceci :
Code :
1
2
3
4
5
6
  SELECT nullif(pere.nom, lag(pere.nom) over(partition BY pere.id ORDER BY fils.nom ASC)) AS nom_pere
       , fils.nom AS nom_fils
    FROM pere
         INNER JOIN fils
           ON fils.id = Pere.id
ORDER BY pere.id ASC, nom_fils ASC;
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 16h15   #3
Invité de passage
 
Inscription : novembre 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 55
Points : 1
Points : 1
Merci, c'est exactement cela.
PS : pourquoi modélisation douteuse ?

Merci encore
guil182 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 16h27   #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
Une table pour les pères, une table pour les fils.

Il manque la table pour les filles, la table pour les femmes, la table pour les mamans, la table des oncles, des cousins, des beaux-pères, des belles-mères et cetera.
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 16h32   #5
Invité de passage
 
Inscription : novembre 2007
Messages : 55
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 55
Points : 1
Points : 1
Ah ok.
C'etait un exemple....oui, "l'objet" n'est pas bon dans mon exemple
je ne connaissais pas la fonction lag()

Merci encore
guil182 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 09h23   #6
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Citation:
La modélisation extrêmement douteuse mise de côté, essayez ceci :
Effectivement, on aurait pu faire une seul table avec un champs "parent" permettant de faire des auto jointures !
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 14h59   #7
Membre Expert
 
Inscription : août 2009
Messages : 779
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 779
Points : 1 098
Points : 1 098
Citation:
Envoyé par Garuda Voir le message
Effectivement, on aurait pu faire une seul table avec un champs "parent" permettant de faire des auto jointures !
C'est une possibilité, mais par rapport au post de Waldar, ça limite toujours les relations (ou alors il faut rajouter N colonnes) ; pour le satisfaire il faut une table de lien idPere - idFils - idRelation.
Rei Ichido 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 18h28.


 
 
 
 
Partenaires

Hébergement Web