|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() philippe tchaidjiansalarié Inscription : mars 2011 Messages : 49 ![]() |
Bonjour à tous
je travaille sur une BdD access 2007 J'ai une table qui reprend les produits commandés par les clients. Je veux sélectionner les clients qui ont commandé deux produits précis (et seulement ces deux produits, mais pas ceux qui en ont commandé qu'un des deux) parmi tous les produits qui ont pu être commandés par les clients. Comme je m'y attendais, la requête renvoie un résultat vide, car ts les clients susceptibles d être concernés en ont commandé d'autres. Voici ma syntaxe. Code :
Merci d'avance |
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
Bonjour,
Votre requete essaie de renvoyer les lignes qui ont à la fois a.Npro = 'PA45' AND a.Npro = 'PA60'. Ceci est biensur impossible. Pour ce genre de cas une requête générique à adapter : Code :
|
||
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() philippe tchaidjiansalarié Inscription : mars 2011 Messages : 49 ![]() |
Merci Punkoff
votre requête fonctionne, il m'a juste fallu enlever le DISTINCT de la dernière ligne. Maintenant l'exercice se complique. Il y a un client qui a commandé les deux articles, mais un des deux articles a été commandé sur deux commandes différentes. Or la requête ne compte que ceux qui ont commandé les deux articles sur deux, et seulement deux, commandes distinctes. Y a-t-il un moyen d'aménager la requête, pour que tous les clients ayant commandé les 2 articles, quel que soit le nombre de commandes, soient sélectionnés ? de mon côté je regarde si je peux repenser la structure de la table. Merci de me dire |
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() philippe tchaidjiansalarié Inscription : mars 2011 Messages : 49 ![]() |
J'ai trouvé une solution à ce problème : il suffit de ne pas reprendre le champ N° de commande ds la table source.
L'exercice a une suite. Au besoin je me permettrais de revenir. merci |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() philippe tchaidjiansalarié Inscription : mars 2011 Messages : 49 ![]() |
C'est bon, j'ai terminé ; encore merci
|
|
|
00
|
|
|
#6 | |||
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
Citation:
Non il ne faut pas enlever le distinct. Pour reprendre votre cas : Code :
|
|||
|
|
00
|
|
|
#7 | ||||
|
Candidat au titre de Membre du Club
![]() philippe tchaidjiansalarié Inscription : mars 2011 Messages : 49 ![]() |
bonjour
SQL pour Access ne semble pas pouvoir traiter ce script. Ci-dessous ma requête complète : Code :
Le script ainsi modifié : Code :
donc en enlevant le DISTINCT non reconnu, me donne le résultat attendu, testé sur plusieurs cas en faisant varier les paramètres. Je reste à l'écoute de vos suggestions et commentaires bien cordialement |
||||
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
Ah, limitation d'access ...
Disons que si la requête marche c'est parce que dans votre table T_ProduitsCommandes vous n'avez pas plusieurs fois le même couple {Ncli, Npro} Sinon ça ne marcherait pas |
|
|
00
|
|
|
#9 | ||
|
Candidat au titre de Membre du Club
![]() philippe tchaidjiansalarié Inscription : mars 2011 Messages : 49 ![]() |
Effectivement, j'ai été obligé de passer par une étape intermédiaire
Celle-ci Code :
Dès que ça se complexifie, Access n'est pas toujours idéal, mais je dois faire avec.. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com