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

SQL Firebird Discussion :

Défi SQL - IB / FIB


Sujet :

SQL Firebird

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Points : 13
    Points
    13
    Par défaut Défi SQL - IB / FIB
    Bonjour,

    J'ai une table contenant les infos d'un treeView.

    J'ai deux champs integer : NODE_ID et PARENT_NODE_ID

    Est-ce possible de bâtir une requete qui trouve les record d'un NODE_ID et ses enfants, incluant (et c'est là la difficulté) aussi les enfants des enfants et ainsi de suite ?

    Merci !

    Régent.

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Certain SGBD ont des fonctions permettant ce genre de chose (une certaine réccursivité). Mais il faut savoir que chaque SGBD utilise sa propre sauce (pas de norme qui permettrait d'avoir une syntaxe unique...)

    Bref sous IB/FB, cette commande n'existe pas. Mais elle est très facilement réalisable avec les PS. (Je vous rappel que les PS peuvent êtres utilisés à pres comme si c'étaient de simples tables en lecture)

    "Select .... from Ma_PS() where ... "

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 379
    Points : 376
    Points
    376
    Par défaut
    en complément à Barbibulle, il existe une solution, mais elle passe par l'ajout d'une table et d'une procédure stockée (cf barbibulle) récursive qui charge cette table contenant tous les liens avec les noeuds.

    au final, il suffit alors de joindre ta table plus la table des noeuds pour balayer la totalité des branches.

    cette solution fut présentée par Joe Celko il y a plusieurs années de cela.

    si tu ne trouve pas et si tu persévère dans cette voie, je peux retrouver les algorithmes, voir même faire un exemple fonctionnel pour toi et les autres, mais il faudra un peu de patience alors.

    une autre solution, utilise des triggers "before" et "after" pour remonter les infos des enfants vers le parent immédiat. ce parent pouvant être lui-même un enfant... les triggers se déclenchent alors en cascade et maintiennent les "sommes" entres les enfants et les parents.

    il y a donc plusieurs solutions, le tout et de connaître le but exact.

  4. #4
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Ou encore une autre technique batisée la modélisation intervalaire

    Merci de bien vouloir consulter.

    J'avais oublier de dire qu'on pose pas de defi dans le forum.
    Jamais nous ne cherchons à savoir qui de nous est le meilleur !
    Nous ne nous comparons pas entre nous !
    Nous ne faisons que nous entrainer à mieux connaître nos outils.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

Discussions similaires

  1. Petit défi SQL
    Par davidbouv dans le forum Langage SQL
    Réponses: 11
    Dernier message: 09/09/2011, 09h44
  2. Petit défi SQL (Update avec condition)
    Par Angeldu74 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 03/03/2009, 12h55
  3. Requête en Transact-SQL : un défi
    Par samworld dans le forum Langage SQL
    Réponses: 5
    Dernier message: 14/08/2007, 21h27
  4. Cours, tutoriels, logiciels, F.A.Q,... pour le langage SQL
    Par Marc Lussac dans le forum Langage SQL
    Réponses: 0
    Dernier message: 04/04/2002, 10h21

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