|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() |
Bonjour, (et bonne année)
Je cherche à faire une requête assez simple du style : "obtenir un exemplaire disponible d'un livre" dans le cadre d'une location de livres" => Obtenir tous les exemplaires de livre en tenant compte du fait de l'historique des commandes, les commandes ayant le status 2 indiquent que l'exemplaire est rentré (et donc disponible), un autre status signifie que l'exemplaire n'est pas disponible. J'ai donc une requête : Code :
Merci |
||
|
|
00
|
|
|
#2 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Si tu mets une clause WHERE ou un HAVING cela s'applique deja a toutes les lignes.
Si tu parles de toutes les colonnes, je ne vois pas ce que tu veux faire. |
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() |
si je met un where (et que j'enlève le groupby),
il va me retourner la copie si au moins une commande a le status 2, alors qu'il faut qu'elles soit toutes avec le status deux (ou qu'il n'y ait pas de commande) pour que la copie soit retenue. concernant le having il porte sur un groupe de status (group by id_copy) ne faut-il donc pas un mot clé de groupe pour spécifier ce champ dans cette clause ? |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
Voir mon lien précédent...
Tu dois faire une requête avec WHERE NOT EXISTS(...) et tester la non-existence d'un status valant 2. Si tel est le cas, alors cela répond à ta problèmatique |
|
|
00
|
|
|
#6 | ||
|
Membre régulier
![]() |
Ca me semble "bizarre" que ce soit dans la clause where et pas dans la clause having, quoi qu'il en soit je dois faire une sous-requête mais je vois pas trop comment faire.
WHERE NOT EXISTS (SELECT * FROM Command WHERE id_copy = copieactuelle AND status != 2) ma requête serait alors : Code :
"Si une sous-requête retourne absolument aucune valeur, alors la clause EXISTS <subquery> est TRUE" cela ne devrait pas être l'inverse ? j'ai testé ça fonctionne correctement, mais je comprend quand même pas le manuel (je fais comme je pense et ça fonctionne) |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com