台灣最大程式設計社群網站
線上人數
1619
 
會員總數:246101
討論主題:189673
歡迎您免費加入會員
討論區列表 >> MS SQL >> 關於某欄位累計數字後要大於某個數字問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
關於某欄位累計數字後要大於某個數字問題
價值 : 20 QP  點閱數:2349 回應數:4
樓主

永遠的初心者
初學者
136 199
2180 225
發送站內信

各位前輩安安~
最近有個統計數字的語法我一直想不出來怎解決,
需求如下:

首先,先看我的資料表TablaA
內容如下
AutoID,PP
1,50
2,50
3,100
4,50
5,100

現在我要用掉120PP
需要把前3筆相加50+50+100=200 才會大於120,這時要顯示出用掉的3筆的資料
同裡要用掉100PP
需要把前2筆相加50+50=100 才會大於等於100,這時要顯示出用掉的2筆的資料
要用掉230PP
需要把前4筆相加50+50+100+50=250 才會大於等於230,這時要顯示出用掉的4筆的資料

請問我語法該怎下,才能達到這樣的需求..
光用SUM就會全部加起來了,超過數字後就不要再累加上去了
只顯示出剛好到(或超過)這數字的資料就好

感謝解答


本篇文章發表於2012-10-30 10:19
1樓
回應

Pan01
檢舉此回應
這個 一定要用 SQL 來寫嗎 ? 有需要 去兜 複雜的 SQL 後 , 再 搞得自己事後 看不懂 而 無法修改 ?

用程式來處理 不是比較簡單嗎?







本篇文章回覆於2012-10-30 13:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

pilipala
檢舉此回應

SQL Server 2012 新語法可以快速的對資料進行累加 OVER => 連結內的 D 範例
非 2012 版本的話,可以參考這篇文章 [SQL SERVER][TSQL]如何計算累加值
Google running totoal 或 累計加總也可以得到更多資料。

版本不是 2012 或商業邏輯太複雜的話,建議到前端處理,不要把資料庫效能浪費在這。
本篇文章回覆於2012-10-30 14:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

Chen
捐贈 VP 給 Chen 檢舉此回應

本篇文章回覆於2012-10-30 22:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

pilipala
檢舉此回應

感謝 chen 的 TSQL 語法邏輯,破解了小弟的一個盲點,
提供一下 2012 的寫法,請參考看看 ~~

本篇文章回覆於2012-10-31 16:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.