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

Développement SQL Server Discussion :

Des données hiérarchiques dans SQL SERVER


Sujet :

Développement SQL Server

  1. #1
    Membre habitué
    Femme Profil pro
    Consultante BI
    Inscrit en
    Mars 2011
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Consultante BI
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 236
    Points : 191
    Points
    191
    Par défaut Des données hiérarchiques dans SQL SERVER
    Bonjour ,

    Je me permet de revenir vers vous car je rencontre un problème

    J'ai une table source qui contient

    [CODE_Etablissement],[LIB_Etablissement],[CODE_ETABLISSEMENT_MERE]

    Exemple

    5 | DIRECTION GÉNÉRALE | NULL
    4 | DIRECTION RH | 5
    3 | DIRECTION MARKETING| 5
    2 | DIRECTION SERVICE | 4
    1 | DIRECTION SERVICE2 | 4

    Mon objectif est de créer une nouvelle table destination en ajoutant l'hiérarchie (le niveau)

    [CODE_Etablissement],[LIB_Etablissement],[CODE_ETABLISSEMENT_MERE],[LEVEL]

    5 | DIRECTION GÉNÉRALE | NULL|0
    4 | DIRECTION RH | 5 |1
    3 | DIRECTION MARKETING| 5 |1
    2 | DIRECTION SERVICE | 4 |2
    1 | DIRECTION SERVICE2 | 4 |2

    J'ai cherché dans internet j'ai trouvé le type hierarchyid.
    j'ai lu quelques doc mais j'ai toujours j'ai des ambiguïtés. Est ce que vous pouvez m'aider.
    Merci.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Pourquoi créer une nouvelle table ?
    Vous pouvez calculer cette information à la volée :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    With MaTable ([CODE_Etablissement], [LIB_Etablissement], [CODE_ETABLISSEMENT_MERE]) as
    (
    select 5, 'DIRECTION GÉNÉRALE' , NULL union all
    select 4, 'DIRECTION RH'       , 5    union all
    select 3, 'DIRECTION MARKETING', 5    union all
    select 2, 'DIRECTION SERVICE'  , 4    union all
    select 1, 'DIRECTION SERVICE2' , 4
    )
      ,  CTEr ([CODE_Etablissement], [LIB_Etablissement], [CODE_ETABLISSEMENT_MERE], [LEVEL]) as
    (
    select [CODE_Etablissement], [LIB_Etablissement], [CODE_ETABLISSEMENT_MERE], 0
      from MaTable
     where [CODE_ETABLISSEMENT_MERE] is null
     union all
    select t.[CODE_Etablissement], t.[LIB_Etablissement], t.[CODE_ETABLISSEMENT_MERE], c.[LEVEL] + 1
      from MaTable as t
      join CTEr    as c
        on c.[CODE_Etablissement] = t.[CODE_ETABLISSEMENT_MERE]
    )
    select [CODE_Etablissement], [LIB_Etablissement], [CODE_ETABLISSEMENT_MERE], [LEVEL]
      from CTEr;
     
    CODE_Etablissement LIB_Etablissement   CODE_ETABLISSEMENT_MERE LEVEL
    ------------------ ------------------- ----------------------- -----------
    5                  DIRECTION GÉNÉRALE  NULL                    0
    4                  DIRECTION RH        5                       1
    3                  DIRECTION MARKETING 5                       1
    2                  DIRECTION SERVICE   4                       2
    1                  DIRECTION SERVICE2  4                       2

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. enregistré donnée excel dans sql server
    Par julius0123 dans le forum ASP
    Réponses: 1
    Dernier message: 24/10/2008, 23h37
  2. Utilisation des types de données bit dans SQL Server
    Par yanal dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/05/2008, 14h19
  3. Gestion des données avec MS sql server 2005
    Par rezgui_fawzi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/01/2008, 15h55
  4. Récupération données nvarchar dans SQL Server 2000
    Par fucce dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/05/2007, 16h59
  5. Rafraichissement des données avec ADOConnection -SQL Server
    Par newfsch dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/01/2006, 21h48

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