2013-06-26 2 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

Что? Таблица (ы)? Запрос? Данные? – Aiias

+0

[Этот ответ] (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 должно быть возвращено к нулю, потому что последний 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