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 :

Créer une view


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2010
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2010
    Messages : 105
    Par défaut Créer une view
    Bonjour,

    J'ai un problème dont je ne trouve pas la solution, peut être pourriez vous m'aider. Je m'explique.

    J'ai une table SITE qui contient en gros
    site_id,
    site_site_id, (ID du SITE parent)
    NIVEAU (allant de 0 à 6, le niveau 0 a un site_site_id null)
    LIBELLE

    C'est un peu comme si pour chaque ville,département ou quartier(niveau de granularité différent), je voulais seulement connaitre son pays et sa région

    Mon but est de créer une view qui me renvoie pour tous les SIT_ID le libellé du niveau 0 et 1.

    Bref, j'espère avoir été clair.

    Merci de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2010
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2010
    Messages : 105
    Par défaut
    Désolé je ne vois pas comment faire !

    Si j'ai loupé le chapitre qui me permettrai de faire ça de manière récursive ou autre je voudrais bien que tu me le spécifies

  4. #4
    Membre éprouvé Avatar de pinocchio
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2002
    Messages : 795

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Citation Envoyé par Marshall06 Voir le message
    Désolé je ne vois pas comment faire !
    Comment faire quoi ? la création de la vue ou le select ?

    Mettez votre requête actuel.

  6. #6
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2010
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2010
    Messages : 105
    Par défaut
    Bon j'ai trouvé un truc sympa sur développez voilà où j'en suis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    WITH tree (data, id, level, pathstr)                        
    AS (SELECT SIT_LIBELLE, SIT_ID, 0, 
    SIT_LIBELLE + CAST('' AS VARCHAR(MAX))         
        FROM   [TRD_SITES]                      
        WHERE  SIT_SIT_ID IS NULL          
        UNION ALL                               
        SELECT [SIT_LIBELLE], SIT_ID, t.level +1, t.pathstr + '_' + V.[SIT_LIBELLE]
        FROM   [TRD_SITES] V                     
               INNER JOIN tree t 
                     ON t.id = V.SIT_SIT_ID)
    SELECT SPACE(level) + data as data, id, level, pathstr
    FROM   tree
    ORDER  BY pathstr, id
    Voilà le lien que j'ai utilisé http://sqlpro.developpez.com/cours/s...ecursives/#LIV

    Le résultat me satisfait assez.

    Je vais maintenant chercher à créer une view pour stocker ces données. Cette vue doit avoir l'id,e libellé1 et libellé2 (avant les 2 premiers "_" dans deux champs différents)
    Enfin s'il me garde le libellé dans un seul champs, je devrais m'en sortir après dans mon ETL pour faire la modif.

    Je suis toute ouïe de vos divers commentaires, c'est la première fois que j'utilise ce genre de query je suis un peu mal à l'aise avec pour l'instant .


    EDIT: j'ai résolu mon problème directement dans mon ETL, en tout cas merci pour la récursivité, ça marche super. Je laisse le sujet ouvert toute la journée si vous avez des conseils ou autre je le mettrais résolu ce soir.

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

Discussions similaires

  1. Créer une View avec un cursor pipelined
    Par moncef357 dans le forum PL/SQL
    Réponses: 3
    Dernier message: 31/03/2014, 14h54
  2. [Débutant] créer une partial view
    Par bender86 dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 10/02/2014, 13h28
  3. Outil pour créer une app un peu comme le logiciel Qlick View
    Par hjoumane dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 07/11/2013, 13h12
  4. Réponses: 16
    Dernier message: 11/09/2009, 10h56
  5. Réponses: 0
    Dernier message: 27/05/2009, 11h16

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