PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

cách tính số dư trong phần mềm kế toán bằng chức năng cửa sổ postgres

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

Chơi đùa: http://sqlfiddle.com/#!15/97dc5/2/0

Cân nhắc thay đổi tên cột của bạn "Vào" / "Ra" để bạn không cần đặt chúng trong dấu ngoặc kép. (Chúng là những từ dành riêng)

Nếu bạn chỉ muốn một khách hàng (customer_id =2):

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

Nếu truy vấn của bạn dành cho nhiều khách hàng và bạn muốn có số dư đang hoạt động PHỤC HỒI với từng khách hàng, bạn có thể sử dụng:

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. Cách sqrt () hoạt động trong PostgreSQL

  2. Không tìm thấy hàm chuyển đổi từ không xác định thành văn bản

  3. Tại sao bạn nên học PostgreSQL?

  4. Django mô hình một khóa ngoại cho nhiều bảng

  5. hibernate với c3p0:createClob () chưa được triển khai