|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : janvier 2007 Messages : 134 ![]() |
Bonjour,
Le titre est bizarre mais je n'ai pas trouvé mieux. Mon besoin : J'ai une base d'information avec des documents. Chaque document à un certain nombre de paramètres fixes et d'autres facultatifs. Les attributs fixes sont stockés dans la table document Les attributs facultatifs sont stockés dans une table séparée avec un lien (ID du doc) comme jointure. Donc Tab_Doc à pour colonne ID_DOC ; Reference ; Titre ; Date de création ex : 1 ; REF_1 ; Doc_1 ; 12/09/11 2 ; REF_2 ; Doc_2 ; 13/09/11 et Tab_Facultatif à pour colonne ID_DOC ; Libellé paramétre ; Valeur. ex : 1 ; Validé ; Oui 1 ; Emetteur ; Toto 1 ; Service ; Service_1 2 ; Validé ; Non 2 ; Emetteur ; Titi Je souhaite créer une requête pouvant me retourner les informations suivantes : 1 ; REF_1 ; Doc_1 ; 12/09/11 ; Oui ; Toto ; Service 1 2 ; REF_2 ; Doc_2 ; 13/09/11 ; Non ; Titi ; Est ce possible en SQL ? Sinon en procédure stockée ? Et si oui, comment ? D'avance merci pour vos retours car là je séche complètement. Bonne journée (ou soirée). A+ 1 ; REF_1 ; Doc_1 ; 12/09/11 ; Validé |
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 958 ![]() |
Intéressez vous à ce sujet : http://sqlpro.developpez.com/cours/m...n/metadonnees/
Les requêtes sont généralement de la forme : Code :
PS : la prochaine fois respectez la charte de postage : http://www.developpez.net/forums/d96...vement-poster/
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
||
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Oui, c'est possible.
Le plus "simple", c'est de faire N jointures sur la table des attributs facultatifs, avec un OUTER JOIN à chaque fois. Code :
Vous pouvez aussi utiliser une fonction de pivot, mais je ne sais plus si SQL Server 2008 en supporte une nativement. Dans tous les cas, vous comprendrez qu'il vaut mieux faire une unique jointure inner join, récupérer deux colonnes "libellé paramètre" et "valeur paramètre", et faire le pivot dans votre application cliente. |
||
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : janvier 2007 Messages : 134 ![]() |
Bonjour
Désolé pour le format de ma demande mais c'est la première fois que j'utilise ce site pour la partie base de données. Par contre, pour ce qui concerne le FAQ, c'est bien quand on sait ce que l'on cherche. Et là, mon souci était que je ne savais que choisir. En tout cas merci pour ces 2 retours que je vais mettre en application. A+ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com