這裡提供了小弟寫程式時的一些心得, 歡迎大家批評指教

持續更新中...

Neverever2411 發表在 痞客邦 留言(0) 人氣()

當資料庫裡有一條條的交易紀錄, 該如何算出每一筆交易過後的餘額呢?這裡教大家一個小技巧...

 

假設交易紀錄(Purchase)有四筆資料如下

Select * From Purchase
ID Amount Date
--- ------- -----------
1 12.35 2009-03-12
2 39.12 2009-03-12
3 -9.67 2009-03-13
4 99.70 2009-03-15

先做一個 Temporary Table

Select *, CONVERT(Money, 0) Balance Into #temp From Purchase 

#temp應該長的像這樣子, 多一個 Balance column 來紀錄餘額

Select * From #temp
ID Amount Date Balance
--- ------- ----------- ---------
1 12.35 2009-03-12 0
2 39.12 2009-03-12 0
3 -9.67 2009-03-13 0
4 99.70 2009-03-15 0

好!那現在來算每一筆交易後的餘額吧, 設定一開始是0元

declare @bal money
set @bal = 0

update #temp
set @bal = Balance = @bal + Amount

來看看結果

Select * from #temp
ID Amount Date Balance
--- ------- ----------- ---------
1 12.35 2009-03-12 12.35
2 39.12 2009-03-12 51.47
3 -9.67 2009-03-13 41.80
4 99.70 2009-03-15 141.50

現在每一筆交易紀錄都有餘額了. 這個小技巧應該還可以應用在其他地方, 等著你去發掘囉!

Neverever2411 發表在 痞客邦 留言(0) 人氣()