|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() philippe tchaidjiansalarié Inscription : mars 2011 Messages : 49 ![]() |
Bonjour à tous
je code en SQL pr requêter sur des tables d'une BdD MS-Access. J'ai un pb avec l'opérateur XOR, reconnu par SQL pr MS-Access, mais qui ne me donne pas les résulats attendus, et je ne comprends pas prquoi .. Je cherche les commandes portant sur le produit 'PA45' ou (exclusif de l'autre) le produit 'PA60', mais pas les deux, sachant qu'à une commande peuvent être associés plusieurs produits, dt les deux cités ci-dessus, ou d'autres. Voici le texte de ma requête : Code :
Je ne comprends pas prquoi ! Pouvez-vs m'aider svp ? m'expliquer ? merci d'avance |
||
|
|
00
|
|
|
#2 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Je ne comprend pas l'utilisation de XOR pour une sélection de champ.
Si tu veux tout les enregistrements qui ont soit Npro = "PA45" ou "PA60". Code sql :
WHERE [NPro]="PA45" OR [NPro]="PA60" si tu veux les enregistrements qui n'ont pas Npro = "PA45" ou "PA60" Code sql :
WHERE [NPro]<>"PA45" AND [NPro]<>"PA60" A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() philippe tchaidjiansalarié Inscription : mars 2011 Messages : 49 ![]() |
Je veux ici pouvoir déterminer les commandes qui ont été passées soit pr le produit 'PA45', soit pr le produit 'PA60', mais pas pr les deux simultanément.
C'est dc bien - a priori - le connecteur XOR qu'il convient d'utiliser ? Sommes-ns d'accord là-dessus ? Si oui, alors ma question demeure : prquoi je récupère la commande qui porte sur ces 2 produits simultanément (avec d'autres produits par ailleurs) ? Est-ce que je me fais bien comprendre ? merci de me dire |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Pppa1 et Marot_r,
Il semble que T_Detail contienne 1 ligne par produit, non ? Code T_Detail :
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
||
|
|
00
|
|
|
#5 |
![]() ![]() ![]() |
Salut
Une requête travaille sur une source de données. Ici, la source de données c'est ta table. La requête analyse les lignes une par une. Y a-t-il une ligne contenant les deux produit ? ===> Non. Donc, ton test ne renvoie TOUJOURS VRAI dès l'existence de l'un de ces produits, et tu récupères deux lignes pour ta commande en question.. j'ai tout bon ? PS ... Zut ! grillé par richard
__________________
1formaxion, une formation de qualité, des formateurs compétents Mes tutoriels et vidéos : Tableaux croisés dynamiques, Access les Bases, et les autres ! |
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() philippe tchaidjiansalarié Inscription : mars 2011 Messages : 49 ![]() |
Merci Maxence, merci Richard
>>Richard la table ressemble à ce que tu as deviné, disons que pr la commande 456 on pourrait rajouter un autre produit différent des deux produits 'PA45' et 'PA60'. >>Maxence, je comprends ce que tu veux dire, et comment est "interprétée" la requête qui sélectionne des enregistrements de table. Ma question est alors : comment sélectionner les commandes pr lesquelles seul un des deux produits précités apparaît (dc pas les deux simultanément) ? Ca doit être possible Je pense qu'il faut oublier une requête simple avec l'opérateur XOR. Je pense à des imbrications de sous requêtes.. Qu'en pensez-vous ? merci de me dire |
|
|
00
|
|
|
#7 | ||
![]() ![]() ![]() |
Code :
__________________
1formaxion, une formation de qualité, des formateurs compétents Mes tutoriels et vidéos : Tableaux croisés dynamiques, Access les Bases, et les autres ! |
||
|
00
|
|
|
#8 | ||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
Bonjour à tous,
Si l’unicité du couple (Ncom, Nprod) est assurée, on peut écrire : Code sql :
|
||
|
20
|
|
|
#9 | ||
![]() ![]() |
Bonjour,
En logique binaire un "ou exclusif" correspond à cela : Code :
a xor b = (a and not b) or (not a and b) Code :
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
||
|
|
00
|
|
|
#10 |
![]() ![]() ![]() |
Christophe, cela ne changera rien si ses données sont dans des enregistrements différents
__________________
1formaxion, une formation de qualité, des formateurs compétents Mes tutoriels et vidéos : Tableaux croisés dynamiques, Access les Bases, et les autres ! |
|
00
|
|
|
#11 |
![]() ![]() ![]() |
@f-leb
Superbe ! je n'y avais pas pensé, focalisé sur le XOR Bravo
__________________
1formaxion, une formation de qualité, des formateurs compétents Mes tutoriels et vidéos : Tableaux croisés dynamiques, Access les Bases, et les autres ! |
|
00
|
|
|
#12 | ||
![]() ![]() |
Bonjour,
Cela peut servir aussi sans l'unicité du couple avec une sous-requête. Code :
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
||
|
|
00
|
|
|
#13 |
![]() ![]() ![]() |
Oui, mais c'est dommage de compliquer vu que le XOR est reconnu par Access...
__________________
1formaxion, une formation de qualité, des formateurs compétents Mes tutoriels et vidéos : Tableaux croisés dynamiques, Access les Bases, et les autres ! |
|
00
|
|
|
#14 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonsoir à tous,
... et bravo pour l'astuce, Fabien.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#15 |
|
Candidat au titre de Membre du Club
![]() philippe tchaidjiansalarié Inscription : mars 2011 Messages : 49 ![]() |
Maxence a écrit
"Oui, mais c'est dommage de compliquer vu que le XOR est reconnu par Access... " Oui, je suis bien d'accord ... premier réflexe aussi d'utiliser XOR ds cette situation qd on a une formation à dominante mathématique... et sans faire de la philosophie de bas étage...on voit là un aspect de la différence entre l'être humain et la machine. Merci encore à ts ceux qui sont intervenus
|
|
|
00
|
|
|
#16 | ||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
Re,
alors si vous insistez pour avoir du XOR Code sql :
[EDIT] finalement assez similaire au code de Maxence du post #7[/EDIT] |
||
|
10
|
|
|
#17 |
![]() ![]() ![]() |
hmmmm... je découvre EXISTS...
Ca marche dans Access ça ? T'es sûr ? [EDIT]Super ! Effectivement, c'est pris en compte, et j'en ai profité pour découvrir l'arrivée de nouveau termes... ALL, ANY, SOME bravo et merci ![/EDIT]
__________________
1formaxion, une formation de qualité, des formateurs compétents Mes tutoriels et vidéos : Tableaux croisés dynamiques, Access les Bases, et les autres ! |
|
00
|
|
|
#18 | |
![]() ![]() |
Bonjour,
Citation:
__________________
Cordialement, Christophe Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche |
|
|
|
00
|
|
|
#19 |
|
Candidat au titre de Membre du Club
![]() philippe tchaidjiansalarié Inscription : mars 2011 Messages : 49 ![]() |
Merci à tous, vous êtes formidables.
![]() Donnent le résultat attendu : requête de Carden752 (celle de 21 h 09) et aussi celle de F_Leb de ce jour. Je vais pouvoir avancer sur ce cas. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com