sql >> Database >  >> RDS >> Sqlserver

De SQL-query optimaliseren voor het berekenen van het rekeningsaldo

Het idee is om eerst de som voor elk transactietype te genereren, Debit en Credit . Voeg het daarmee toe aan de Bankdetails om het huidige saldo te berekenen.

;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. Juli 2016 PSU kan isqora . niet maken

  2. password_hash, password_verify, MySQL-misverstand?

  3. ListView Control Tutorial-02

  4. Slaapstand op orakel, @GeneratedValue(strategie =GenerationType.AUTO)