用于对列中的值求和的子查询

时间:2016-09-08 14:13:41

标签: sql sql-server sum subquery

我使用此代码对特定日期的订单求和:

select od.OrderID, (od.unitprice * quantity) - ((od.unitprice * od.quantity) * discount) + freight as OrderSum
from orders, [Order Details] as od
where orderdate = '1996-12-12' and od.orderid = orders.orderid

上面的代码给出了以下输出表:

OrderID | OrderSum
10380     370,37
10380     506,63
10381     119,99

所需的最终结果和输出:我想对上面创建的列“OrderSum”中的值求和,以便将输出放在名为“Total ordersum”的列中。换句话说,我想要的所需输出表:

Total ordersum
996,99

如何在上面的代码中添加子查询来解决这个问题?如果有人可以提供代码示例,我将非常感激。

1 个答案:

答案 0 :(得分:3)

只需进行聚合查询:

select sum(od.unitprice * quantity) - sum((od.unitprice * od.quantity) * discount) + sum(freight) as Total_OrderSum
from orders o join
     [Order Details] as od
     on od.orderid = o.orderid
where orderdate = '1996-12-12'; 

注意:从不FROM子句中使用逗号。 始终JOIN子句中的条件使用显式ON语法。