यहां आप यह कैसे कर सकते हैं..
select
s.client_id,
s.date,
s.op_balance as Open_Balance,
s.credit,
s.debit,
s.balance
from
(
select
t.client_id,
t.date,
t.credit,
t.debit,
@tot_credit := if(@prev_client = t.client_id, @tot_credit + t.credit,t.credit) as tot_cred,
@tot_debit := if(@prev_client = t.client_id,@tot_debit + t.debit,t.debit) as tot_deb,
@cur_bal := if(@prev_client = t.client_id, @tot_credit - @tot_debit,t.credit-t.debit) as balance,
(@cur_bal + t.debit) - t.credit as op_balance,
@prev_client := t.client_id
from(
select * from stock order by client_id,date
)t,(select @prev_client:=0,@cur_bal:=0,@tot_credit:=0,@tot_debit:= 0,@open_balance:=0)r
)s
इसके अलावा मैंने देखा है कि वही डेटा आपके पास दिनांक कॉलम है जिसका उपयोग मैंने प्रति क्लाइंट आईडी को सॉर्ट करने के लिए किया है, लेकिन तारीख के लिए डेटाटाइम होना अच्छा है ताकि सॉर्टिंग उसी तारीख से भ्रमित न हो या प्राथमिक कुंजी हो टेबल।