0

私は、すべての支払いが期間終了ごとに行われるテーブルを持つデータベースを使用しています。前の期末と比較した今月の支払いの差異を計算する必要があります。私はSQLクエリを作成しましたが、それは汚く見え、それを行うための最良の方法には見えません。

((SELECT payment FROM paytable py1 WHERE py1.pay_id = pn.pay_id  AND period_id = '201310') 
  - 
((SELECT payment FROM paytable py2 WHERE py2.pay_id = pn.pay_id AND (period_id = '201310' -   1)))) as 'Payment Variance',

これらの計算の多くを行う必要があります。これを行うための最良の方法は何でしょうか?

4

1 に答える 1

1

これは役に立ちますか?基本的に、期間 1 で同じテーブルをそれ自体に結合します。

SELECT py1.period_id, py1.payment - py2.payment as 'Payment Variance'
 FROM paytable py1 
 INNER JOIN paytable py2
        ON  py2.pay_id = py1.pay_id
        AND py2.period_id = CAST(CAST(py1.period_id as int) -1 as varchar(10))
 WHERE  py1.pay_id = pn.pay_id
于 2013-02-08T09:21:31.427 に答える