sql >> Database teknologi >  >> RDS >> Sqlserver

Optimering af SQL-forespørgslen til beregning af kontosaldo

Ideen er først at generere summen for hver transaktionstype, Debit og Credit . Med det skal du slutte dig til Bankdetails for at beregne den aktuelle saldo.

;with cte as(
    select
        AccNo,
        Credit = sum(case when TranType = 'Credit' then Amount else 0 end),
        Debit = sum(case when TranType = 'Debit' then Amount else 0 end)
    from Trandetails
    group by
        AccNo
)
select
    bd.AccName,
    bd.AccNo,
    CurrBal = bd.opBal - c.Debit + c.Credit
from BankDetails bd
inner join cte c
    on c.Accno = bd.Accno


  1. MariaDB JSON_TYPE() Forklaret

  2. Mysql-opdatering med if-sætning

  3. SQL-forespørgsel til at hente rækker, hvor en værdi er til stede i et kommasepareret felt

  4. Mysql Find manglende datointervaller