PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

как да изчислим салда в счетоводен софтуер с помощта на функцията прозорец postgres

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

Цигулка: http://sqlfiddle.com/#!15/97dc5/2/0

Помислете за промяна на имената на колоните си "В" / "Извън", така че да не е необходимо да ги поставяте в кавички. (Те са запазени думи)

Ако искате само един клиент (customer_id =2):

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

Ако заявката ви трябваше да обхваща няколко клиенти и искате текущо салдо, което ДА ЗАПОЧВА ОТНОВО с всеки клиент, можете да използвате:

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. трябва ли да активирам обединяването на изрази c3p0?

  2. Как да използвам spring data jpa за заявка за колона jsonb?

  3. Как да форматирате числата като валута в PostgreSQL

  4. Обърнете се към псевдоним на име на колона в клаузата WHERE

  5. Комбинации от заявки с вложен масив от записи в тип данни JSON