对列进行分组,然后减去行?

时间:2014-03-20 07:46:50

标签: sql-server

我已经看过其他问题,但仍然在努力解决这个问题,所以我想我会提出来。

我需要生成所有未完成订单的清单,并按部分订购。

所以我的专栏是Partid,tradequantity和invoicequantity。

因此,交易者数量是已订购的数量,而发票是已交付的数量。

我有点中途......但我觉得我可能需要一张新桌子?这是迄今为止的代码。

select (traderquantity - invoicedquantity) AS balance, partid, invoicedquantity,traderquantity
from orderitems  
where status = 'ACTIVE'
and ordertype = 'PO'
order by partid

最初尝试使用Sum on traderquantity并减去InvoiceQuanity,但是当我按PartId进行分组时,它会返回错误。

编辑:只是添加我实际上可以使用Excel完成此操作,但我想知道如何在SQL中执行此操作。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

试试这个:

select 
    SUM(traderquantity - invoicedquantity) AS balance, 
    partid, 
    SUM(invoicedquantity) AS TotalInvoicedquantity,
    SUM(traderquantity) AS TotalTraderquantity
from 
    orderitems  
where 
    status = 'ACTIVE'
    and ordertype = 'PO'
GROUP BY 
    partid
order by 
    partid