1

次のストアドプロシージャが機能しています。特定の年 (2013 年) の特定の TIN のレコードを合計します。TINS には、結果とともに TIN で識別される納税者名があります。列は、TIN、TaxpayerName、Total としてレンダリングされます。

これは会計ベースのアプリケーションです。

私がやりたいことは、別の年の合計を表示する 4 番目の列を追加することです。これにより、これらを後で比較できます。年は常に前の年になります (この例では 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 に答える