2016-09-19 5 views
0

Ich bin mit der Berechnungsfunktion wie das Bild fest, ich kann nur die Summierung per Lastschrift machen.Berechnen Sie die Summe nach Satzart

Der Sänger ist sein System

Saldo = WENN DIE POSITION Spalte 1 Spalte 2 debit Abbuchungs So das Ergebnis - Kredit, Kredit IF Spalte 1 Spalte 2 Credits, dann ist das Ergebnis ein Kredit - Kredit, Kredit IF Spalte 1 Spalte 2 Debit-, Kredit- + Debit so das Ergebnis, und so weiter, wie die Abbildung

results

hier ist mein Code

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' 

Antwort

0

So etwas?

/* 
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    | 
+------+------+-------+--------+--------------+-------------------+--------------------+ 
Verwandte Themen