我有以下存储过程正常工作。它汇总了特定年份(2013年)特定TIN的记录。 TINS具有用TIN标识的纳税人姓名以及结果。 列呈现为TIN,TaxpayerName,Total。
这是一个基于会计的应用程序。
我想要做的是添加第4列,显示另一年的总和,这样可以比较以后。这一年将始终是前一年(本例中为2012年)。
前一年可能有也可能没有任何入场券,所以我必须在前一年给它一个0或null。我正在努力弄清楚如何将它们组合在一起。 不知何故,我将不得不匹配每个TIN并获得上一年的总和(如果它存在)。 此查询的部分将如下所示:Trans.Main_AbstractNumber = 136和SUBSTRING(Trans.Main_TaxPeriod,1,4)='2012',使用SUM(Main_AbstractAmount)作为PreviousTotal或类似的东西。
有谁知道我该如何处理这个问题? 谢谢
Select Trans.Main_TIN, C.TaxpayerName, SUM(Main_AbstractAmount) as Total
from qetl.RECORDS Trans join qetl.TAXPAYERS C on Trans.Main_TIN=C.TIN
where Trans.Main_AbstractNumber =136 and SUBSTRING(Trans.Main_TaxPeriod,1,4) = '2013'
GROUP BY Trans.Main_TIN,C.TaxpayerName
答案 0 :(得分:0)
您想使用条件求和:
Select Trans.Main_TIN, C.TaxpayerName,
SUM(case when SUBSTRING(Trans.Main_TaxPeriod,1,4) = '2013' then Main_AbstractAmount end) as Total2013,
SUM(case when SUBSTRING(Trans.Main_TaxPeriod,1,4) = '2012' then Main_AbstractAmount end) as Total2012
from qetl.RECORDS Trans join
qetl.TAXPAYERS C
on Trans.Main_TIN=C.TIN
where Trans.Main_AbstractNumber = 136
GROUP BY Trans.Main_TIN, C.TaxpayerName ;