根据销售情况,我怎样才能获得前五名的供应商呢?
我有以下数据库:

我尝试过多种解决方案,这是最接近的解决方案,但我知道这是错误的,因为一个供应商出现不止一次。
SELECT TOP 5
(od.UnitPrice * (1 - od.Discount) * od.Quantity) total_sales,
od.Quantity, od.UnitPrice, od.Discount, S.ContactName
FROM
[Order Details] od
INNER JOIN
Products p ON p.ProductID = od.ProductID
INNER JOIN
Suppliers s ON s.SupplierID = p.SupplierID
ORDER BY
total_sales DESC

销售总额由以下公式提供:
SUM(UnitPrice * (1 - Discount) * Quantity)任何帮助都将不胜感激!
发布于 2022-01-16 17:44:44
你需要按供应商分组
SELECT TOP (5)
s.CompanyName,
s.ContactName,
SUM(od.UnitPrice * (1 - od.Discount) * od.Quantity) total_sales,
FROM
Suppliers s
INNER JOIN
Products p ON s.SupplierID = p.SupplierID
INNER JOIN
[Order Details] od ON p.ProductID = od.ProductID
GROUP BY
s.SupplierID,
s.CompanyName,
s.ContactName
ORDER BY
total_sales DESC;注意Suppliers的主键在分组中的位置,即使它没有被选中。
https://stackoverflow.com/questions/70732233
复制相似问题