Pytanie brzmi

SELECT ANO((SUM(AMOUNT) WHERE ANO = 101 AND TYPE = DEPOSIT) - 
           (SUM(AMOUNT) WHERE ANO = 101 AND TYPE = WITHDRAW)) AS TOTAL 
  FROM transact 
 WHERE ANO = 101;

2, gdzie zgaduję problem. Chcę nabyć aktualną równowagę. Dla EG - 101 ma depozyt w wysokości 12000 i wycofanie 2500. Wyjście powinno wynosić 9500.

query on this Table

1
ValAsta 21 listopad 2020, 18:32

1 odpowiedź

Najlepsza odpowiedź

Podejrzewam, że chcesz warunkowej agregacji:

select ano,
    sum(case when type = 'deposit' then amount else - amount end) as balance
from transact
where type in ('deposit', 'withdraw')
group by ano

Jeśli są tylko dwa możliwe type s, a następnie klauzula where nie jest konieczna.

1
GMB 21 listopad 2020, 15:41