2012-04-25 91 views
1

可能重複:
Calculate a Running Total in SqlServer如何使運行在總SQL

我創建一個事務表。我決定不在任何地方存儲每個用戶的餘額。我計劃要做的是,每個月我都會「平衡前進」,並從餘額中購買向前邁進的MINUS借記PLUS積分,以平衡餘額。

我的表看起來像這樣

ID int primary key 
userID int foriegn key 
TransactionDate datetime 
description varchar(200) 
amount money 
balanceBoughtForward bit 

我在書面方式是獲取一個balanceeboughtforward的最新記錄的功能,然後使用該ID來計算與視圖與正在運行的總餘額計劃額外的列「平衡」

但我無法弄清楚如何創建一個正在運行的總列?

+1

另外,如果你在2012年的SQL,運行總計是一種更有效的查詢。不太確定你的'balanceBoughtForward'應該如何行動(還有一個錯字) – billinkc 2012-04-25 00:53:32

+0

我可以假設列「BALANCE」在任何給定時間只有一行不爲空嗎? – cctan 2012-04-25 01:08:03

回答

0

也許我沒有得到它或者你的問題不夠清楚。這不是用一個聚合函數解析的(更準確地說是SUM函數)。

例:

select user_id, (sum(credit) - sum(debit)) balance 
from table 
where 
some condition 
group by 
user_id 
+0

查看「正在運行的總計」並檢查由@billinkc鏈接的答案 – MatBailie 2012-04-25 01:07:39