Access Query从具有相同ID的同一表中的不同行中减去2个不同的列

时间:2016-12-06 11:09:59

标签: sql ms-access

enter image description here

我有一个表deposit,其列Refund_amtDeposit_amt具有不同的行GR_no。我的问题是,我想从deposit_amt中减去Refund_amt列 我在查询中尝试了各种替代方案,但没有成功

我的查询:

SELECT d.Gr_no
     , d.Rec_No
     , d.Deposite_Amt
     , d.penalty_Amt
     , d.Refund_Amt - Refund 
     , s.Name
     , s.cur_std
     , cur_div 
  From  
     ( select d.Refund_Amt refund 
         from deposite d 
            , std_gr s  
        where d.Gr_no = s.Gr_no   )

结果在final total列中显示如下:

enter image description here

谢谢

1 个答案:

答案 0 :(得分:1)

您正在寻找每个std_gr的汇总:存款总和减去退款总和。一种方法是在子查询中执行此聚合,并将此子查询连接到表。

select 
  d.*, sums.final_total
from deposite d
join
(
  select std_gr, nz(sum(deposite_amt),0) - nz(sum(refund_amt),0) as final_total
  from deposite
  group by std_gr
) as sums on sums.std_gr = d.std_gr
order by d.rec_no;