如何在SQL中对这些值求和

时间:2017-11-05 19:22:20

标签: sql sql-server sql-server-2014

我的SQL表中有多个发票,我想计算总金额的总和

就像我的SQL表是

Invoice_No      Sub_Total     Total
10001           1265          1265
10001           1265          1265
10002           1586          1586

我希望使用SQL查询汇总所有发票,但我不想计算具有相同发票编号的所有行,我想计算一次。

使用此查询Select SUM(Total) From Purchase_Order_Log

,总计的SUM为4116

我希望结果应该是2851

2 个答案:

答案 0 :(得分:0)

我认为这就是你想要的:

  SELECT SUM(Total), Invoice_No FROM (
    SELECT distinct Invoice_No, Total from Purchase_Order_Log) as Purchase_Order_Log
    group by Invoice_No

返回:

1265    10001
1586    10002

派生表中的distinct子句确保仅选择不同的发票。这会按发票对总计进行分组。如果你只想要一个总数那么它是:

SELECT SUM(Total) from (select distinct total,invoice_no from Purchase_Order_Log) as Purchase_Order_Log

返回:

2851

第二个查询假定invoice_no和total在每一行上始终相同。

答案 1 :(得分:0)

您可以使用:

select Sum(Total) from(
    Select Invoice_No, Total From Purchase_Order_Log
    group by Invoice_No, Total
) as T