// i have tested above table and find a solution , try below query it works fine
WITH CTE AS (
SELECT
rownum = ROW_NUMBER() OVER (ORDER BY D.Date),D.Date as Date,D.BF as BF,D.Deposite,D.Withdraw,D.balance
FROM (
select date as Date ,0 as BF,sum(deposite) as Deposite,-1*sum(withdraw) as Withdraw, SUM(deposite)-SUM(withdraw) as balance from testTable where Username='A' and date<=CONVERT(SMALLDATETIME,'24/01/2014',103) group by date)D)
select Date, ISNULL(BF,0) as 'B/F',Deposite,Withdraw,ISNULL(BF,0)+Deposite+Withdraw as Balance
from
(
select Date ,ISNULL(BF,0)+(select balance from CTE prev where prev.rownum = CTE.rownum - 1) as BF ,Deposite,Withdraw,balance as Balance from CTE
)x
//don't forgot to accept the answer if you find it helps