参加する必要がありますが、どのタイプかわかりません。次のようなテーブルがあります。
Date Amount | FOO
------------------
2012-01-12 x
2012-03-14 y
2012-05-06 z
2012-05-14 aa
2012-09-02 bb
私はこれを DateDim (Google here: DATE DIM、日付の表 (過去と未来)) と結合しています。
次のようなデータを表示するクエリが必要です。
datedim.Date foo.Amount | FOO x DATEDIM
------------------------------------------
2012-01-12 x
2012-01-13 x
2012-01-14 x
... etc...
2012-03-14 y
2012-03-15 y
2012-03-16 y
2012-03-17 y
... etc...
2012-05-06 z
... etc...
基本的に、次の非 null 値まで値を保持する必要があります (左結合の場合は NULL になります)。それも持続します...など..
私がこれまでに持っているもの...
SELECT datedim.Date
,CASE
WHEN Amount IS NULL
THEN (SELECT TOP 1 Amount
FROM FOO WHERE foo.Date <= datedim.Date
ORDER BY Date DESC)
ELSE Amount END AS Amount
FROM DATEDIM datedim
LEFT JOIN FOO foo
ON foo.Date = datedim.Date
これからビューを作成する必要があります。TOPで指定されていない限り、ORDER BYはビューに対して無効であるというエラーが表示されます??? サブクエリにTOPがあります...