sql >> Databáze >  >> RDS >> Sqlserver

Optimalizace SQL dotazu pro výpočet zůstatku účtu

Cílem je nejprve vygenerovat součet pro každý typ transakce, Debit a Credit . Poté jej připojte k Bankdetails pro výpočet aktuálního zůstatku.

;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. java.lang.AbstractMethodError:com.mysql.jdbc.PreparedStatement.setBlob(ILjava/io/InputStream;)V

  2. PostgreSQL dotaz s dynamickými sloupci a počty od spojení

  3. Jak zobrazit všechna oprávnění k databázi Oracle pro uživatele

  4. Správný způsob zpracování obousměrných 1:m v Green-DAO