J'ai écrit la requête suivante qui est sortie de retour sans aucun message d'erreur mais je vois un problème avec la sortie:erreur avec le groupe par dans la requête interne de sous requête corrélative
select productid, productname, categoryid, unitprice
FROM production.products as PP
where unitprice in (select min(unitprice) as minprice
from production.products as PC
group by categoryid)
order by categoryid
go
Résultat:
24 Product QOGNU 1 4.50
3 Product IMEHJ 2 10.00
19 Product XKXDO 3 9.20
21 Product VJZZH 3 10.00
33 Product ASTMN 4 2.50
52 Product QSRXF 5 7.00
54 Product QAQRL 6 7.45
74 Product BKAZJ 7 10.00
13 Product POXFU 8 6.00
La sortie affiche plusieurs lignes pour categoryid = 3. Lorsque nous regroupons par categoryid, ne devrait-il pas afficher une seule ligne (un prix unitaire min) par categoryid.
Où vais-je mal? Merci d'avance à tous pour votre aide.
Vous regroupez uniquement dans la sous-requête. Aussi votre 'IN' comparer avec tous les prix pas ceux sur la catégorie de produits. Vérifiez Tim réponse pour voir comment utiliser «JOIN» –