2013-06-26 68 views
-1

我有這樣的查詢一個...SQL查詢餘額

+-----+------------+--------+---------+---------+ 
| seq | fld_Date | CBU_IN | CBU_OUT | Balance | 
+-----+------------+--------+---------+---------+ 
| 41 | 2012-10-08 | 150.00 | 0.00 | 150.00 | 
| 42 | 2012-10-15 | 50.00 | 0.00 | 200.00 | 
| 43 | 2012-10-22 | 50.00 | 0.00 | 250.00 | 
| 44 | 2012-10-29 | 50.00 | 0.00 | 300.00 | 
| 45 | 2012-11-05 | 50.00 | 0.00 | 350.00 | 
| 46 | 2012-11-12 | 50.00 | 0.00 | 400.00 | 
| 47 | 2012-11-19 | 50.00 | 0.00 | 450.00 | 
+-----+------------+--------+---------+---------+ 

我想要的就是這種輸出的其中下一行日期從fld_Date的下一行。

+-----+------------+---------------+--------+---------+---------+ 
| seq | fld_Date | next_row_date | CBU_IN | CBU_OUT | Balance | 
+-----+------------+---------------+--------+---------+---------+ 
| 41 | 2012-10-08 | 2012-10-15 | 150.00 | 0.00 | 150.00 | 
| 42 | 2012-10-15 | 2012-10-22 | 50.00 | 0.00 | 200.00 | 
| 43 | 2012-10-22 | 2012-10-25 | 50.00 | 0.00 | 250.00 | 
| 44 | 2012-10-25 | 2012-11-05 | 50.00 | 0.00 | 300.00 | 
| 45 | 2012-11-05 | 2012-11-12 | 50.00 | 0.00 | 350.00 | 
| 46 | 2012-11-12 | 2012-11-16 | 50.00 | 0.00 | 400.00 | 
| 47 | 2012-11-16 | 2012-11-26 | 50.00 | 0.00 | 450.00 | 
+-----+------------+---------------+--------+---------+---------+ 

你能幫我這一個...謝謝...

這裏是我的查詢......

SELECT 
     lms_savings.seq, 
     lms_savings.fld_Date, 
     FORMAT(lms_savings.CBU,2)AS CBU_IN, 
     FORMAT(lms_savings.CBU_OUT,2)AS CBU_OUT,   
    FORMAT(@Balance := @Balance + lms_savings.CBU - lms_savings.CBU_OUT,2) AS Balance 
FROM lms_savings, (SELECT @Balance := 0) AS variableInit 
+0

什麼?表(S)?查詢?數據? – Aiias

+0

[This answer](http://stackoverflow.com/a/11316349/622391)講述了模擬[lag/lead](http://www.oracle-base.com/articles/misc/lag-lead-analytic) -functions.php)在MySQL –

回答

0

把你的查詢到位 「查詢」

select a.seq, a.fld_Date,b.fld_Date as next_row_date, 
     a.CBU_IN,a.CBU_OUT,a.Balance 
from (your query) a left outer join (your query) b 
on a.seq = b.seq-1 
+0

謝謝我已經知道了...... – xdiver

+0

next_row_date的最後一行必須返回null,因爲最後一個seq只有47? – xdiver

0
select a.seq, a.fld_Date, b.fld_Date as next_row_date , a.CBU_IN, a.CBU_OUT, a.Balance 
from table_name a, table_name b 
where a.seq = b.seq+1