1
Refer this optimized query
with cte as (
SELECT *,
row_number() over (partition by accountno order by trandate desc) as rn
FROM test
)
select accountno,
trandate,
amount,
paidamount,
balance,
coalesce(balance + (select sum(balance) from cte a where a,rn > b.rn
and a.accountno = b.accountno ), 0) as previous_balance
from
cte b
order by b.accountno, b.trandate
Accepted 1
Try this
SELECT `Accountno`
,`Trandate`
,`Amount`
,`Paidamount`
,`Balance`
, (SELECT SUM(`Balance`)
FROM `YourTableName`
WHERE `Trandate` <= T1.`Trandate`
AND `Accountno` = T1.`Accountno`) INTO `Prevbalance`
FROM `YourTableName` T1