SQL Server:对计算的列结果进行分组

时间:2017-07-31 18:48:47

标签: sql sql-server sql-server-2008 sql-server-2012

我是SQL Server的新手,并且正在尝试通过使用Northwind数据库为自己创建任务来学习。当我试图编写一个查询时,我已经碰壁了,这会导致给我整个订单的净总价值。

dbo.[Order Details]有三列我需要相乘以获得总(Quantity * UnitPrice * (1 - Discount))。它为特定OrderID的每个产品提供了总价值。所以我按特定顺序为每个产品获得一行。

这就是它的样子:

OrderID     UnitPrice             Quantity Discount      NetTotal
----------- --------------------- -------- ------------- -------------
10248       9,80                  10       0             98
10248       14,00                 12       0             168
10248       34,80                 5        0             174
10249       18,60                 9        0             167,4

正如你可以看到每一行都是一个产品,我希望得到一行=一个OrderID,就像这样:

OrderID     NetTotal
----------- -------------
10248       266
10249       312
10250       194

正如您所看到的每一行都是一个产品,我希望得到一行=一个OrderID。 我尝试了在网上找到的不同分组方法(Rollup,Grouping Sets等),但它没有用。可以请任何人帮助我完成这项任务吗?谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个:

SELECT OrderID, SUM(Quantity * UnitPrice * (1-Discount)) AS NetTotal
FROM dbo.[Order Details]
GROUP BY OrderID

我希望对你有所帮助:)。