1

我有以下存储过程工作。它汇总了特定 TIN 上给定年份(2013 年)的记录。TINS 有一个用 TIN 标识的纳税人姓名以及结果。这些列呈现为 TIN、TaxpayerName、Total。

这是一个基于会计的应用程序。

我想做的是添加第四列,显示另一年的总和,以便以后进行比较。年份将始终是前一年(本例中为 2012 年)。

上一年可能有也可能没有任何整数,所以我必须给它上一年的 0 或 null。我正在努力弄清楚如何将它们结合在一起。不知何故,我将不得不匹配每个 TIN 并获得上一年的总和(如果存在)。此查询的部分将如下所示: Trans.Main_AbstractNumber =136 and SUBSTRING(Trans.Main_TaxPeriod,1,4) = '2012', Using SUM(Main_AbstractAmount) as 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 
4

1 回答 1

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 ;
于 2013-07-30T00:58:37.767 回答