2012-08-31 192 views
1

您将如何将基于ID返回的给定产品的所有qtys相加。SQL:数量总计

我试过了。

PRODID, ITEMDES, QTY, SUM(QTY where PRODID = PRODID) 
as total-qty-for-each-product, 

回答

4

你会使用分析功能:

select 
    PRODID, ITEMDES, QTY, 
    SUM(QTY) over (partition by PRODID) as total-qty-for-each-product 
from 
    products 
; 

的使用方法类似普通SUM与它总结与同PRODID内联的所有值的差异。结果与以下查询相同:

select 
    PRODID, ITEMDES, QTY, 
    (select SUM(QTY) from products p where p.PRODID = PRODID) 
     as total-qty-for-each-product 
from 
    products 
; 

分析函数最好说明by the experts

+0

这似乎工作,你能解释这对我更多? – Prometheus

+0

请参阅更新。该链接适用于Oracle,但Oracle和MS SQL Server中的概念甚至语法都是相同的。 –