Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Saldo kredytu otwartego MySQL Saldo debetowe

Oto jak możesz to zrobić...

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

Zauważyłem też, że te same dane, które masz kolumnę daty, której użyłem do sortowania według identyfikatora klienta, ale dobrze jest mieć datetime dla daty, aby sortowanie nie pomyliło się z tą samą datą lub może być kluczem podstawowym w stół.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę używać SQL's YEAR(), MONTH() i DAY() w Doctrine2?

  2. MySQL kontra MariaDB

  3. Jaki jest najłatwiejszy sposób ustalenia, czy użytkownik jest online? (PHP/MYSQL)

  4. Jak uzyskać liczbę wierszy w tabeli MySQL za pomocą PHP?

  5. Wyłącz logowanie root w phpMyAdmin