带有GROUP BY的SQL中的行总和

时间:2017-11-14 15:06:13

标签: sql sql-server

我的表格中包含以下数据:

ID  OrderId TAX%    Quantity UnitCost
1     5      28    2       1280
2     5      18    1       1180

我希望输出如下:

ORDERID    TaxableValue       TaxValue
   5           3000               740

我怎样才能做到这一点?我尝试过:

SELECT orderid,
       ROUND((SUM(UnitCost*Quantity)*TAX)/(100+TAX),2) AS taxValue,
       ROUND(SUM(unitCost*quantity)-ROUND((SUM(UnitCost*Quantity)*TAX)/(100+TAX),2),2) AS taxableValue 
FROM table1 
GROUP BY OrderId;

但上面的查询无效。

对不起,这是税率。这是新的更新查询。请考虑一下。

3 个答案:

答案 0 :(得分:2)

很确定它就像做一些数学一样简单。

select OrderID
    , TaxableValue = SUM(UnitCost - TAX)
    , TaxValue = SUM(TAX * Quantity)
from YourTable
group by OrderID

编辑:TaxableValue

上的数学略有偏差

对于那些想要证明这是有效的人。

declare @Something table
(
    ID int
    , OrderId int
    , TAX int
    , Quantity int
    , UnitCost int
)

insert @Something values
(1, 5, 28, 2, 228)
, (2, 5, 18, 1, 118)

select OrderID
    , TaxableValue = SUM(UnitCost - TAX)
    , TaxValue = SUM(TAX * Quantity)
from @Something
group by OrderID

答案 1 :(得分:0)

这是如何做到的。

SELECT 
orderid, 
sum(unitcost*quantity) - sum(tax*quantity) as taxablevalue,
sum(tax*quantity) as taxvalue
FROM table1  
GROUP BY OrderId;

答案 2 :(得分:0)

select OrderId
    , SUM((unitcost * quantity * tax)/(100+tax)) as TaxValue
    , SUM(unitcost * quantity)-SUM((unitcost * quantity * tax)/(100+tax)) as taxableValue
from table1
group by OrderId