从下表中我想添加来自相同记录的2个值和来自不同记录的一个值,即(来自第一个记录的extraaamt)+(来自第二个记录的trnamt)
5140560000001183 1016.00 0.00 2014-05-23 R 0.00 1017 13
5140560000001183 1016.00 0.00 2014-05-24 N 30.00 1017 0
carno emi recamt lastrecdate status penamt trnamt extraamt
5140560000001183 1016.00 0.00 2014-05-23 R 0.00 1017 13
5140560000001191 880.00 0.00 2014-05-23 R 0.00 880 0
5140560000001142 934.00 0.00 2014-05-23 P 0.00 500 0
5140560000001209 963.00 0.00 2014-05-23 P 0.00 600 0
5140560000001175 1024.00 0.00 2014-05-23 N 0.00 0 0
5140560000001167 1117.00 0.00 2014-05-23 N 0.00 0 0
5140560000001159 834.00 0.00 2014-05-23 N 0.00 0 0
5140560000001183 1016.00 0.00 2014-05-24 N 30.00 1017 0
5140560000001191 880.00 0.00 2014-05-24 N 0.00 880 0
5140560000001142 934.00 0.00 2014-05-24 N 0.00 500 0
5140560000001209 963.00 0.00 2014-05-24 N 0.00 600 0
5140560000001175 1024.00 0.00 2014-05-24 N 0.00 0 0
5140560000001167 1117.00 0.00 2014-05-24 N 0.00 0 0
5140560000001159 834.00 0.00 2014-05-24 N 0.00 0 0
我使用了以下查询,但仍无法提供帮助:
Select
Case WHEN ( lastrecdate=( cast (GETDATE() as DATE))and CardNo=CardNo and Status in('N','P') ) then trnammt else 0 end +
Case WHEN ( lastrecdate=( cast (GETDATE() as DATE))and CardNo=CardNo and Status in('N','P')) then pendamt else 0 end +
Case WHEN (lastrecdate= (select MAX(lastrecdate ) from Tbl_Emi WHERE Status ='R' and CardNo=CardNo) ) then extraamt else 0 end as totalamount
from Tbl_Emi where CardNo=CardNo
答案 0 :(得分:0)
请在 CrossTab查询/数据透视查询上进行google。您可以使用此功能完成此任务 CrossTab查询非常棒,这有助于生成报告并使用汇总值进行播放。 Excel / Ms Access为数据透视表提供了很好的用户界面。这是将行传输到列中的方法。它更常用于生成矩阵形式的报告 请看this blog。
答案 1 :(得分:0)
select tt.carno, t1.extraamt+t2.trnamt total from
(select t.carno,
MIN(t.lastrecdate) first
, MAX(t.lastrecdate) second
from dbo.[Table] t
group by t.carno) tt
inner join dbo.[Table] t1
on t1.carno=tt.carno and t1.lastrecdate=tt.first
inner join dbo.[Table] t2
on t2.carno=tt.carno and t2.lastrecdate=tt.second