|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : janvier 2006 Messages : 483 ![]() |
Bonjour,
Je me remets depuis quelques jours aux requêtes SQL, j'ai un petit doute et trou de mémoire. J'ai par exemple une table article sur laquelle je veux afficher le code. Tout simplement Select Code From Article Mais je veux afficher une deuxième colonne, un prix par exemple qui appartient à une autre table "tarif". Par contre un article n'apparait pas forcément dans la table des tarifs, mais je veux tout de même qu'il s'affiche avec en première colonne son code bien sûr et en deuxième colonne que cela reste à blanc. En sachant que j'ai également des restrictions à faire sur la table tarifs. Exemple de la table tarifs il y a le code, prix et une année comme suit : A - 3,41€ - 2009 A - 3,43€ - 2010 A - 3,45€ - 2011 B - 2,24€ - 2009 B - 2.27€ - 2010 Donc je fais le lien sur le code article A ou B. Mais je veux choisir d'afficher le prix 2011. Le A a bien un prix mais pas le B par contre je veux qu'il s'affiche tout de même avec la colonne prix à blanc. Comment procéder, comment mettre en lien les deux tables ? Merci d'avance |
|
|
00
|
|
|
#2 |
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 446 ![]() |
Pour répondre à ton besoin, il faut utiliser une jointure externe.
Afin de combler tes trous de mémoire, tu pourras utilement relire ce tutoriel sur les jointures.
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur ![]() |
|
|
00
|
|
|
#3 | ||||
|
Membre régulier
![]() Inscription : janvier 2006 Messages : 483 ![]() |
J'ai bien lu ton tutoriel maintenant j'ai une gêne car ma sélection de base (sans parler de la jointure gauche) concerne déjà plusieurs table et plusieurs sélection voir ci-dessous :
Code :
Code :
Merci d'avance |
||||
|
|
00
|
|
|
#4 |
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 446 ![]() |
Commence par reprendre ta requête en utilisant les jointures normalisées (INNER JOIN ... ON ...), ce sera déjà tout de suite plus lisible.
Il deviendra alors facile de remplacer une jointure stricte par une jointure externe à l'endroit nécessaire.
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur ![]() |
|
|
00
|
|
|
#5 | ||
|
Membre régulier
![]() Inscription : janvier 2006 Messages : 483 ![]() |
Code :
Je n'ai jamais travaillé avec ce type de jointure. Je ne sais où placer ma 3ème table et la jointure. |
||
|
|
00
|
|
|
#6 | ||||
|
Membre régulier
![]() Inscription : janvier 2006 Messages : 483 ![]() |
C'est bon j'ai donc retravailler ma requête comme demandé et cela me donne çà :
Code :
Ce qu'il me reste à rajouter : Code :
|
||||
|
|
00
|
|
|
#7 | ||
|
Membre régulier
![]() Inscription : janvier 2006 Messages : 483 ![]() |
Sachant qu'il y a deux jointures à faire
Code :
|
||
|
|
00
|
|
|
#8 | ||
|
Membre régulier
![]() Inscription : janvier 2006 Messages : 483 ![]() |
Pour information j'ai tenté comme ci-dessous pour la double jointure mais çà ne fonctionne pas ligne concerné (15, 16, 17 et 18) :
Code :
|
||
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Remplacer votre 1er AND par un WHERE !
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#10 |
|
Membre régulier
![]() Inscription : janvier 2006 Messages : 483 ![]() |
C'est pas mieux il me met en erreur :
"Column ambiguously defined" |
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Vous avez 2 alias identiques !
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#12 |
|
Membre régulier
![]() Inscription : janvier 2006 Messages : 483 ![]() |
Ce que vous appelez alias c'est PPRICLIST PR qui apparait dans deux jointures ?
Car j'ai mis çà deux fois car c'est la même table mais il y a deux jointures. Alors que pour les tables nomées ITMCOST C1 et ITMCOST C2, là c'était deux tables différentes. Pouvez-vous m'expliquer la différence ? |
|
|
00
|
|
|
#13 | ||
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
L'alias sert précisément a donner un "surnom" (surnommage) a une table afin de rendre la requete plus lisible, et permettre aussi de differencier les sources de données dans le cas d'une autojointure par exemple
Exemple : Code :
Il est évident que vous devez passer plus de temps sur le tutoriel des jointures ... Cela vous évitera de perdre du temps et approfondira vos connaissances
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com