sql server 2014 - 计数(*)和乘法

时间:2017-07-01 07:57:57

标签: sql-server

我正在努力完成一项简单的任务: 我有一张表如下:

ID  UserID  OrderID     Quantity        Price   ItemID  Status
1   John        25          2           3.50    ...     Open
2   Jack        26          1           2.00    ...     Open
3   John        27          2           1.25    ...     Open
4   John        28          3           1.50    ...     Closed

需要知道约翰有多少订单开放

我构建了如下简单查询:

select count(ID) cnt from Orders where UserID='John' and Status='Open'

现在我还需要检查未结订单的总金额 但是以下列方式更改查询

select count(ID) as cnt, Quantiy*Price as Amount from Orders where UserID='John'...

不起作用

也许我可以从@@ RowCount获得订单数量,但我想知道是否有更好的解决方案

由于

1 个答案:

答案 0 :(得分:1)

您不能在Count(*)中使用非聚合列和Select,除非它们位于Group By

使用SUM汇总来获取John

的未结订单总额
select count(ID) as cnt, 
       sum(Quantiy*Price) as Amount 
from Orders 
where UserID='John' and Status='Open'