|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : octobre 2008 Messages : 349 ![]() |
Bonjour,
Voici le schéma de ma base: Calendrier(IDJour, DateDuJour) Vente(IDVente, DateVente, Quantite, #IDProduit) Je souhaite faire une requête qui me renvoi toutes les dates, avec les quantité de vente du produit ayant l'id '2' J'ai lu le cours sur les jointures externes (ici et voici ma requête: Code :
Je ne sais pas trop comment faire. Merci d'avance pour votre aide. Petite précision cette requête est exécutée sur Access 2003 |
||
|
00
|
|
|
#2 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
le IDPRODUIT=2 fait partie de la jointure externe.
Il faut donc le mettre dans le ON et non le WHERE. En effet, une fois qu'on est dans le WHERE, alors on a la liste des lignes retournée par la jointure INNER, complétées par les lignes manquantes, dont tous les champs de VENTE sont à null, y compris IDPRODUIT. Donc un filtre sur IDPRODUIT dans le where va de facto virer toutes les valeurs NULL, et donc la requête revient à faire un INNER JOIN. J'espère que pour vous c'est plus clair maintenant. |
|
|
20
|
|
|
#3 | ||
|
Membre régulier
![]() Inscription : octobre 2008 Messages : 349 ![]() |
Merci, effectivement c'est logique et ça me parait évident maintenant
Pour ceux que ça intéresse voici la syntaxe une fois modifié: Code :
|
||
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Code :
Jointure externe et condition de restriction. |
||
|
|
20
|
|
|
#5 | |||
|
Membre régulier
![]() Inscription : octobre 2008 Messages : 349 ![]() |
Citation:
|
|||
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Ca doit être une limitation Access... Ou peut être avec des parenthèses entourant la condition de jointure.
|
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() Inscription : octobre 2008 Messages : 349 ![]() |
J'ai essayé il veut rien entendre. Ma requête imbriquée fonctionne, c'est peut être pas le top, mais ça fera l'affaire.
Merci pour ton aide. |
|
00
|
|
|
#8 |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
En effet Access est un peu crétin, et refuse les contantes dans les critères de jointure.
Du coup on est obligé de mettre le 2 dans le where. Tu peux faire : Code :
WHERE idproduit=2 OR idproduit IS NULL |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com