我想编写一个查询,该查询返回所有行,直到某一列值的总和达到某个值为止。
例如在下表中:
DATE ETC Meeting 2013-02-01 00:00:00 85482 1 2013-02-01 00:00:00 47228 2 2013-02-02 00:00:00 12026 4 2013-02-03 00:00:00 78927 6 2013-02-04 00:00:00 85662 2 2013-03-05 00:00:00 47978 1 2013-08-07 00:00:00 8582 1
如果我要获取行,直到列的总和Meeting等于7。
Meeting
DATE ETC Meeting 2013-02-01 00:00:00 85482 1 2013-02-01 00:00:00 47228 2 2013-02-02 00:00:00 12026 4
如果我要获取行,直到列的总和Meeting等于13。
DATE ETC Meeting 2013-02-01 00:00:00 85482 1 2013-02-01 00:00:00 47228 2 2013-02-02 00:00:00 12026 4 2013-02-03 00:00:00 78927 6
这是一种应在MySQL中工作的方法:
SELECT O.Id, O.Type, O.MyAmountCol, (SELECT sum(MyAmountCol) FROM Table1 WHERE Id <= O.Id) 'RunningTotal' FROM Table1 O HAVING RunningTotal <= 7
在这种情况下,它涉及计算运行总计并选择记录,而运行总计小于或等于给定数字7。
7