|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 3 ![]() |
Bonjour Tout le monde,
J'ai 3 tables (Demandes, Caractéristique et Valeur_Caractéristique) , chaque demande possède 0, 1 ou 2 caractéristiques, Ma question c'est comment peut on faire pour lister toutes les demandes avec leur caractéristique (valeur_caractéristique) sans avoir des doublons, c-a-d dans le cas ou j'ai 2 caractéristiques j'affiche seulement une. Ci-après un exemple du résultat de la requête que j'ai fait Exp : 11001 Installation 11001 Conforme 11002 000000000 11003 Configuration 11003 Conforme Merci pour votre aide |
|
|
00
|
|
|
#2 | ||
|
Membre éprouvé
![]() ![]() Hamid MIRAIngénieur développement logiciels Inscription : septembre 2003 Messages : 177 ![]() |
Ton message n'est pas du tout clair.
Peux-tu : - Reformuler ta question en étant plus précis, - Fournir les scripts de création des 3 tables, - Fournir également des exemples de jeux de données illustrant ce que tu veux obtenir comme résultat. Citation:
Citation:
__________________
"Une idée mal écrite est une idée fausse !" |
||
|
|
00
|
|
|
#3 | ||
|
Membre Expert
![]() |
Tu veux la liste des demandes possédant au moins une caractéristique?
Si c'est le cas ne passe pas par un JOIN mais par un EXISTS: Code :
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
||
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() ![]() Inscription : novembre 2007 Messages : 134 ![]() |
Bonjour,
En effet, il faudrait avoir un peu plus de précisions, notamment sur la caractéristique que vous souhaitez garder à afficher. Je vous conseille cependant de regarder du coté des fonctions de classement, notamment ici : http://msdn.microsoft.com/fr-fr/library/ms189461.aspx . En utilisant ces fonctions, notamment avec ROW_NUMBER, vous devriez pouvoir limiter l'affichage à une seule caractéristique par demande. Bon courage |
|
|
00
|
|
|
#5 | |||
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 3 ![]() |
Bonjour Je vous remercie pour l’intérêt que vous avez données à ma demande, bon je reformule mon besoin avec des exp:
J'ai une table demande qui a la structure suivante Citation:
Par exp : Citation:
Citation:
Merci de m'aider |
|||
|
|
00
|
|
|
#6 | ||
|
Membre éprouvé
![]() ![]() Hamid MIRAIngénieur développement logiciels Inscription : septembre 2003 Messages : 177 ![]() |
C'est un peu mieux qu'avant, mais, pour moi, ce n'est toujours pas assez précis.
Si tu veux juste ne pas remonter les lignes caractéristique de la demande (ValCaracterisque) pour lesquelles le champ ValCar est vide ou égale à '00000000000000000', (la cause des doublons), essaie la requête ci-dessous : Essaies ceci : Code SQL :
Remarque : La jointure externe LEFT OUTER JONT va te ramener les Demandes pour lesquelles, il n' y a aucune caractéristique. Pour ces lignes le champ ValChar sera NULL transformé en chaine vide par la fonction ISNULL(..) A+
__________________
"Une idée mal écrite est une idée fausse !" |
||
|
|
00
|
|
|
#7 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2009 Messages : 14 ![]() |
Pour ma part je ferais un truc plus simple
Code :
Attention avec cette requête tu aura par exemple deux résultats pour le NoDmd 2011. N°Dmd IdCar Nature Caractéristique --------------------------------------------------------------------- 2011 69 Exploitation Installation / affectation 2011 49 Exploitation 00000000000000000 Si tu ne veux pas cela, soit il faut filtrer sur IdCar, soit sur Caractéristique. Avec un Where ou un And dans la clause du JOIN. |
||
|
|
00
|
|
|
#8 | ||
|
Membre confirmé
![]() ![]() Inscription : novembre 2007 Messages : 134 ![]() |
Bonjour,
Je suis d'accord, vous exprimez mal votre besoin. Ne faites pas comme ici une seule et longue phrase, qui plus est sans ponctuation. Cependant je crois avoir compris. A priori, vous voulez avoir la liste de toutes les demandes. A cette liste vous voulez ajouter le libellé de la nature de la demande (je suppose une relation 1:1 entre les tables). Puis si la nature de la demande est "exploitation", vous voulez afficher en plus une colonne avec la valeur de la caractéristique (là je suppose qu'il n'y a qu'une caractéristique par jeux de demande et nature de demande) J'ai donc essayé d'écrire une requête qui ferait cela, mais il faudrait tester sur un jeu de données. Lorsqu'on mélange des jointures internes et externes, il faut parfois ajouter des parenthèses, notamment ici avec le premier couple de tables, sauf que je ne sais jamais bien où il faut mettre ces parenthèses pour respecter la syntaxe, à vous de tester. Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com