2016-09-19 11 views
0

私は画像のような計算機能が残っていますが、私は借方だけで合計を行うことができます。レコードタイプごとの合計を計算する

歌手が

Saldo彼のシステムです= POSITION列1列2クレジットデビットデビットIF結果そうは - クレジット、クレジットIF列1列2つの単位、そして結果は信用ある - クレジット、クレジットIF列1列2デビットカード、クレジット+デビット結果だから、というように絵ここ

results

としては、私のコードです

select 
    no, 
    tanggal, 
    O.debet, 
    (select sum(debet) from tbl_jurnal_umum where no <= O.no) 'Saldo' 
from tbl_jurnal_umum O 
where nama_perkiraan = 'kas' 

答えて

0

このような何か?

/* 
DROP TABLE T; 
CREATE TABLE T(NAME VARCHAR(3),ID INT, TRTYPE VARCHAR(1), AMOUNT INT); 
INSERT INTO T VALUES 
('abc',1,'D','500'),('abc',1,'C','50'),('abc',1,'C','10'),('abc',1,'C','40'), 
('abc',1,'D','500'),('abc',1,'C','100'); 
*/ 

SELECT S.NAME,S.ID,S.DEBIT,S.CREDIT,s.runtot runningtotal, 
     CASE WHEN S.DEBIT <> '' THEN S.RUNTOT ELSE '' END AS DebitRunningTotal, 
     CASE WHEN S.DEBIT = '' THEN S.RUNTOT ELSE '' END AS CreditRunningTotal 
from 
(
SELECT T.NAME,T.ID, 
     CASE WHEN T.TRTYPE = 'D' THEN T.AMOUNT ELSE '' END AS DEBIT, 
     CASE WHEN T.TRTYPE = 'C' THEN T.AMOUNT ELSE '' END AS CREDIT, 
      @RUNTOT:[email protected] + (
      CASE WHEN TRTYPE = 'D' THEN AMOUNT 
      ELSE AMOUNT * -1 
      END) 
      AS RUNTOT 
FROM (SELECT @RUNTOT:=0) RT, T T 
) s 

+------+------+-------+--------+--------------+-------------------+--------------------+ 
| NAME | ID | DEBIT | CREDIT | runningtotal | DebitRunningTotal | CreditRunningTotal | 
+------+------+-------+--------+--------------+-------------------+--------------------+ 
| abc | 1 | 500 |  |   500 | 500    |     | 
| abc | 1 |  | 50  |   450 |     | 450    | 
| abc | 1 |  | 10  |   440 |     | 440    | 
| abc | 1 |  | 40  |   400 |     | 400    | 
| abc | 1 | 500 |  |   900 | 900    |     | 
| abc | 1 |  | 100 |   800 |     | 800    | 
+------+------+-------+--------+--------------+-------------------+--------------------+ 
関連する問題