sql >> Databasteknik >  >> RDS >> Sqlserver

Optimera SQL-frågan för beräkning av kontosaldo

Tanken är att först generera summan för varje transaktionstyp, Debit och Credit . Gå med det till Bankdetails för att beräkna det aktuella saldot.

;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. Cloud Vendor Deep-Dive:PostgreSQL på DigitalOcean

  2. Oracle instant-klient med gem ruby-oci8 kan inte ansluta till DB i rails c

  3. Få insert_id för alla rader infogade i en enda mysqli-fråga (flera värden)

  4. Använda joins för att kombinera data från olika tabeller i PostgreSQL