次のデータを含むテーブルがあります。
Fiscal Year | Fiscal Quarter | Fiscal Week | Data
2009 | 2 | 22 | 9.5
2009 | 2 | 24 | 8.8
2009 | 2 | 26 | 8.8
2009 | 3 | 28 | 8.8
2009 | 3 | 31 | 9.1
2009 | 3 | 33 | 8.8
以下を生成するクエリを書きたいと思います。
Fiscal Year | Fiscal Quarter | Fiscal Week | Data | Trend
2009 | 2 | 22 | 9.5 | NULL
2009 | 2 | 24 | 8.8 | -0.7
2009 | 2 | 26 | 8.8 | 0
2009 | 3 | 28 | 8.8 | 0
2009 | 3 | 31 | 9.1 | 0.3
2009 | 3 | 33 | 8.8 | -0.3
これは、テーブルを前の会計週と簡単に結合することで簡単に実現できますがt1.[Fiscal Week] = t2.[Fiscal Week] - 2、違いが 3 週間ある場合があるため、必ずしも簡単ではありません。
次のようなもので簡単に最大レコードを取得できます。
SELECT
MAX(t1.[Fiscal Week]) "LastWeek"
FROM t1
WHERE t1.[Fiscal Year] = 2009
AND t1.[Fiscal Week] < 31
しかし、結合を機能させるためにそれを抽象化することになると、私は途方に暮れています。
「現在の記録よりも小さい最大の会計週」で自己結合を行うにはどうすればよいですか?