PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

jak obliczyć salda w programie księgowym za pomocą funkcji okna postgres

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

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

Rozważ zmianę nazw kolumn „In” / „Out”, aby nie trzeba było ich umieszczać w cudzysłowie. (Są słowami zastrzeżonymi)

Jeśli chciałbyś tylko jednego klienta (customer_id =2):

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

Jeśli Twoje zapytanie miałoby obejmować wielu klientów i chciałbyś, aby saldo bieżące było URUCHAMIANE OD PONOWNIE z każdym klientem, możesz użyć:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Migracja istniejących danych auth.User do nowego niestandardowego modelu użytkownika Django 1.5?

  2. Korzyści z PostgreSQL

  3. Atomic UPDATE .. SELECT w Postgres

  4. Wymień wszystkie nazwy indeksów, nazwy kolumn i ich nazwę tabeli bazy danych PostgreSQL

  5. Postgresql json jak zapytanie