0

SQL Server 2008に次の形式のテーブルがあります(簡略化された形式):

日付マイル費用

次のような結果が欲しい

        前週の現在の週の差異
マイル        

費用

どうすればこれを達成できますか?ピボット/ピボット解除が必要ですか、それともこれを実現するための最も簡単でパフォーマンスに効果的な方法が必要ですか。ありがとう。

4

1 に答える 1

0
SELECT 'Miles' AS Type, SUM(CASE WHEN date = lastweek THEN miles ELSE 0 END) as lastweek
, SUM(CASE WHEN date = thisweek THEN miles ELSE 0 END) as thisweek
SUM(CASE WHEN date = lastweek THEN miles ELSE 0 END) - SUM(CASE WHEN date = thisweek THEN miles ELSE 0 END) as variance
FROM yourtable
UNION
SELECT 'Cost' AS Type, SUM(CASE WHEN date = lastweek THEN cost ELSE 0 END) as lastweek
, SUM(CASE WHEN date = thisweek THEN cost ELSE 0 END) as thisweek
SUM(CASE WHEN date = lastweek THEN cost ELSE 0 END) - SUM(CASE WHEN date = thisweek THEN cost ELSE 0 END) as variance
FROM yourtable

これは100%正しいわけではありませんが、構文は正しく、探しているものにかなり近づくはずです。

于 2013-02-18T22:20:15.987 に答える