Bonjour à tous, j'espère que je suis dans le bon topic (il s'agit de SQL en général, même si je suis dans Access
Je dois faire une série de travaux (requêtes) de plus en plus difficiles, et je cale sur une requête. La bonne nouvelle c'est que je n'ai pas d'erreur de syntaxe. La mauvaise nouvelle c'est que je n'obtiens pas le résultat escompté (vide)
La requête 13 est la même que la requête 12, sauf que la 12 se fait avec jointure et la 13 doit se faire sans jointure.
Consigne: r12 Qt disp par produit commandés à Poitiers Jointure Inner Join
r13 Qt disp par produit commandés à Poitiers ! sans jointure, avec sous-requete in(Select(..in(Select(..))
Pour la 12, je l'ai réussie et le code est celui-ci:
Le résultat est donc celui qui est attendu et que j'obtiens:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT DISTINCT Produit.NProd, Produit.Qt_Inv AS Qt_Disp FROM Produit INNER JOIN ((Client INNER JOIN Commande ON Client.NCli = Commande.NCli) INNER JOIN Detail ON Commande.NCmd = Detail.NCmd) ON Produit.NProd = Detail.NProd WHERE (((Client.Localite)="Poitiers"));
NProd Qt_Disp
CS262 10
CS464 20
PA45 30
PA60 12
Pour la requête 13, je ne sais pas comment je dois m'y prendre mais j'ai essayé ceci:
J'ai du foirer quelque part mais je ne sais pas vraiment où.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 SELECT Produit.NProd, Produit.Qt_Inv AS Qt_Disp FROM Produit WHERE Produit.NProd IN ( SELECT Detail.NCmd FROM Detail WHERE Detail.NCmd IN ( SELECT Commande.NCmd FROM Commande WHERE Commande.NCli IN ( SELECT Client.NCli FROM Client WHERE (Client.Localite = "Poitiers") ) ) );
Voici ma BD pour exemple en pièce jointe
J'aimerais qu'on m'explique où se trouve mon erreur. Si j'ai bien compris, le In Select doit se référer au champ commun qui est lié d'une table à une autre
Merci
Partager