2012-08-31 193 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中的概念甚至語法都是相同的。 –