我有這個示例表:
Product | Category | QTY | Load Date
----------- --------------- ------------- --------------
1 Alpha 10 Jan. 1, 2021
2 Beta 20 Jan. 1, 2021
3 Charlie 20 Jan. 1, 2021
1 Alpha 30 Jan. 2, 2021
3 Charlie 30 Jan. 3, 2021
1 Alpha -50 Jan. 4, 2021
2 Beta -20 Jan. 4, 2021
4 Delta 40 Jan. 4, 2021
我想添加一個列,該列將根據以前的加載日期對數量求和,并按產品和類別分組。
我怎樣才能得到如下所示的輸出?
Product | Category | QTY | Load Date | Sum_QTY
----------- --------------- ------------- --------------- ----------
1 Alpha 10 Jan. 1, 2021 10
2 Beta 20 Jan. 1, 2021 20
3 Charlie 20 Jan. 1, 2021 20
1 Alpha 30 Jan. 2, 2021 40
3 Charlie 30 Jan. 3, 2021 50
1 Alpha -50 Jan. 4, 2021 -10
2 Beta -20 Jan. 4, 2021 0
4 Delta 40 Jan. 4, 2021 40
你的幫助意義重大。
謝謝
uj5u.com熱心網友回復:
如果我正確閱讀了問題,使用SUM 作為分析函式將使查詢變得相當簡單;
SELECT *,
SUM("QTY") OVER (PARTITION BY "Product", "Category" ORDER BY "Load Date") Sum_QTY
FROM Table1
ORDER BY "Load Date", "Product", "Category"
一個用于測驗的 SQLfiddle
uj5u.com熱心網友回復:
另一種選擇是使用外部應用
select t.*,
s.sum_QTY
from Table1 t
outer apply ( select sum(t2.QTY) sum_QTY from Table1 t2 where t2.Category = t.Category and t2.[Load Date] <= t.[Load Date] ) s
ORDER BY [Load Date], Product, Category
SQL小提琴
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/393004.html
標籤:sql sql-server 查询语句
