Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL ओपन बैलेंस क्रेडिट डेबिट बैलेंस

यहां आप यह कैसे कर सकते हैं..

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

DEMO

इसके अलावा मैंने देखा है कि वही डेटा आपके पास दिनांक कॉलम है जिसका उपयोग मैंने प्रति क्लाइंट आईडी को सॉर्ट करने के लिए किया है, लेकिन तारीख के लिए डेटाटाइम होना अच्छा है ताकि सॉर्टिंग उसी तारीख से भ्रमित न हो या प्राथमिक कुंजी हो टेबल।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में एक को छोड़कर सभी पंक्तियों का चयन करें

  2. पायथन के माध्यम से बैचों में MySQL से डेटा प्राप्त करना

  3. कई कॉलम अपडेट करने के लिए MySQL केस

  4. जेपीए TemporalType.Date गलत तारीख दे रहा है

  5. दूरस्थ रूप से Python+SQLAlchemy का उपयोग करके MySQL डेटाबेस को कैसे कनेक्ट करें?