SELECT id, Customer, SUM( DEBIT ) OVER (PARTITION BY ID) as Debit, abs(SUM( Payment ) OVER (PARTITION BY ID)) as PAYMENT FROM
(
SELECT
Cust_id as id,
cust_name as customer,
OPENING_BLNC as Debit,
0 as PAYMENT FROM Customer
union all
select
c.Cust_id as id,
c.cust_name as customer,
i.total_amount as Debit,
0 as PAYMENT
FROM Customer c,transaction t,invoice i where t.tran_id=i.inv_tran_id and c.cust_id=t.cust_id
union all
select
c.Cust_id as id,
c.cust_name as customer,
0 as Debit,
a.cr as PAYMENT
FROM Customer c,accounts a where c.cust_id=a.cust_id
)
结果:
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
1 KARIMULLAH 68697.04 40000
重复获取相同的记录.需要根据客户名称和期初余额计算dr和cr
输出应为
Cus_Id Customer Debit Credit
1 KARIMULLAH 68697.04 40000
2 Mr John 25020 15000