sql >> Database >  >> RDS >> PostgreSQL

hoe saldi in een boekhoudsoftware te berekenen met behulp van de postgres-vensterfunctie

select t.*, sum("In"-"Out") over(order by id) as balance
from tbl t
order by id

Viool: http://sqlfiddle.com/#!15/97dc5/2/0

Overweeg om uw kolomnamen "In" / "Out" te wijzigen, zodat u ze niet tussen aanhalingstekens hoeft te zetten. (Het zijn gereserveerde woorden)

Als u slechts één klant wilt (customer_id =2):

select t.*, sum("In"-"Out") over(order by id) as balance
from tbl t
where customer_id = 2
order by id

Als uw vraag meerdere klanten zou omvatten en u een lopende balans wilt die HERSTART is met elke klant, kunt u het volgende gebruiken:

select t.*, sum("In"-"Out") over( partition by customer_id
                                  order by customer_id, id ) as balance_by_cust
from tbl t
order by customer_id, id



  1. SSMS versie 18 – geen databasediagrammen

  2. Oracle Ace-wijzigingen

  3. Werken met de JavaFX-gebruikersinterface en JDBC-toepassingen

  4. MySQL SIN() Functie – Retourneer de sinus van een getal in MySQL