Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
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 30/11/2011, 17h29   #1
Nouveau Membre du Club
 
Homme
Inscription : juillet 2010
Messages : 71
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2010
Messages : 71
Points : 33
Points : 33
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
Marshall06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 21h40   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
bonjour,

tout est ici : http://sqlpro.developpez.com/cours/sqlaz/select/
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 09h32   #3
Nouveau Membre du Club
 
Homme
Inscription : juillet 2010
Messages : 71
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2010
Messages : 71
Points : 33
Points : 33
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
Marshall06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 09h51   #4
Membre chevronné
 
Avatar de pinocchio
 
Homme François
Développeur informatique
Inscription : novembre 2002
Messages : 773
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 35
Localisation : France, Yvelines (Île de France)

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

Informations forums :
Inscription : novembre 2002
Messages : 773
Points : 787
Points : 787
Bonjour,
Le chapitre exact est :
http://sqlpro.developpez.com/cours/s...age=partie2#L8
__________________
La SNCF est mon ami
blog PARIS-GRANVILLE
Inscription au panel IPSOS (possibilité d'avoir des bons d'achats)
pinocchio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 10h12   #5
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 655
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 655
Points : 2 657
Points : 2 657
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.
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2011, 10h30   #6
Nouveau Membre du Club
 
Homme
Inscription : juillet 2010
Messages : 71
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juillet 2010
Messages : 71
Points : 33
Points : 33
Bon j'ai trouvé un truc sympa sur développez voilà où j'en suis :

Code :
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.
Marshall06 est dé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 00h52.


 
 
 
 
Partenaires

Hébergement Web