我想按数量展示最畅销的产品。
我得到了错误:
谢谢大家提前。
Product Table
ProductID ProductName
1 AA
2 BB
3 CC
[Order Details] Table
OrderID ProductID Quantity DateOfOrder
1 1 10 SomeDate
2 1 100 ,,
3 2 15 ,,
4 1 15 ,,
5 2 20 ,,
6 2 30 ,,
7 1 100 ,,
Expected Output
Product By Quantity AA
因为 sum(quantity)=225
我使用了:
select 'Product By Quantity' + ProductName
from
Products
where ProductID in
(select
ProductID
from
[Order Details] det
where Quantity=
(
select max(SUM(Quantity))
from [Order Details] od
where
od.ProductID=det.ProductID
)
)
我得到了错误:
"无法在包含聚合或子查询的表达式上执行聚合函数"
请解释一下为什么这里的语法失败,以便我今后知道正确的语法并编写适当的查询。同时,请给我正确的查询语句。谢谢大家提前。
编辑
我正在尝试以下查询:SELECT 'Best Selling Product'+ProductName
FROM
Products
WHERE ProductID =
(
SELECT ProductID
FROM [Order Details]
GROUP BY ProductID
HAVING SUM(Quantity) = (
SELECT MAX(SQ)
FROM (
SELECT SUM(Quantity) as SQ
FROM [Order Details]
GROUP BY ProductID
) AS OD))
sum()
放在max()
内部,而您对 Martijn 的回答没有意义。尝试给出一个例子,我们可以帮助您。 - egrunin