Je crée un didacticiel basé sur une base de données "Magasins". C'est la partie pratique au tutoriel. J'essaie d'obtenir une liste de produits ayant une quantité d'articles vendue ( Le résultat que je reçois comprend des produits avec une quantité inférieure à 400 fois. J'espère que l'image est un indicateur assez bon. P> Qté code>) plus de 400. Qu'est-ce qui ne va pas avec le code? Il devrait fonctionner juste bien?
3 Réponses :
Vous n'avez aucune agrégation et aucun critère de jointure dans la requête principale, mais vous n'avez même pas besoin d'une sous-requête:
select max(prod_name), products.prod_id, sum(qty) from products inner join sales on products.prod_id = sales.prod_id group by products.prod_id having sum(qty)>400;
Je recommanderais d'écrire la requête comme suit: notes: p>
de code>. Toujours em> Utilisez le bon, explicite, standard strong>, lisible
joindre code> syntaxe. li>
Sélectionnez CODE>, surtout si vous apprenez SQL. LI>
Qté code> dans le
Sélectionnez CODE>. Il devrait être résumé. Li>
ul> p>
Je ne pense pas que vous devez utiliser somme code> puisque vous essayez de comparer les valeurs de
Qté code> pour chaque produit. Vous pouvez faire
avoir Qté> 400 code>.
select prod_name, qty from products, sales
where products.prod_id in (select prod_id from sales
group by prod_id having qty >400);
Le titre contient: 400 fois i>. Dans la question que vous mentionnez 200 fois i> et votre question de requête sur la quantité. Clarifier ce que vous voulez.
Pourquoi avez-vous besoin de
Somme code> si vous souhaitez comparer le
Qté code> lui-même?