我是MSSQL的新手,在这里碰到了墙,我想要做的是在求和并归并属性“Quantity”的值后获得最大值。执行完我在下面编写的查询后,出现此错误“')'附近的语法不正确”。

Select BookID, Sum(OrderMem.Quantity)
from OrderMem
Group By BookID
Having Sum(OrderMem.Quantity) = (select MAX(Quantity)
                                 from (Select Sum(OrderMem.Quantity)
                                       from OrderMem
                                       group by BookID
                                      )
                                );

*涉及的表名为[OrderMem]
请帮忙,谢谢:)

最佳答案

正如评论中提到的那样,您忘记了在最里面的子查询中将Sum(OrderMem.Quantity)作为Quantity的别名。
但是您可以通过对降序排序并仅获取最上面的行来简化查询:

select top 1 with ties
       BookID, Sum(OrderMem.Quantity) qty
from OrderMem
group by BookID
order by qty desc

关于sql-server - MSSQL有子句,我不知道查询出了什么问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61801958/

10-11 00:40