我需要加入,但我不确定是哪种类型。我有一张这样的桌子:
Date Amount | FOO
------------------
2012-01-12 x
2012-03-14 y
2012-05-06 z
2012-05-14 aa
2012-09-02 bb
我加入了 DateDim (谷歌在这里: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),直到下一个非空值。这也会持续存在......等等......
我目前所拥有的...
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
我需要从中创建一个视图。我收到一条错误消息,说 ORDER BY 对视图无效,除非由 TOP 指定???我在子查询中有一个 TOP ......