我需要做一個子查詢,但需要它的值基於主查詢。子查詢加入主查詢
基本上,我試圖從表中獲得ID
,Date
和Value
,我們將其稱爲Orders
。但是,如果WHERE
條款中的指定日期沒有值,則我想知道該值的起始日期(無論是在指定日期之前還是之後)。
下落的查詢是錯誤的,但它或許可以解釋我的邏輯:
SELECT
O.ID
,O.Date
,CASE
WHEN O.Value IS NULL
THEN
(SELECT MAX(Date)
FROM Orders AS O1
WHERE O1.ID = O.ID
ELSE O.Value END
) as Value
FROM Orders O
WHERE O.date = '2017-01-01'
我希望得到以下內容,例如:
ID Value
001 100
002 300
003 12-30-2016
它如何失敗?你能詳細說明嗎? – vignesh