假設我有三個表是這樣的:SQL連接三個表的基礎上,日期條件
TABLE_X TABLE_Y TABLE_Z
---------------------------------------
2012/1/1 a b
2012/1/2 a b
... a b
2012/3/17 a b
2012/3/18 a b
2012/3/19 a b
... a b
2012/12/22 a b
2012/12/23 a b
2012/12/24 a b
... a b
2013/1/1 a b
我需要做的是使用GETDATE()作爲條件的圖。 GETDATE()過去和過去的所有值將會變爲TABLE_Y
列。 GETDATE()將來的所有值將會變爲TABLE_Z
列。
view_TABLE_X_JOIN_Y_Z
---------------------
2012/1/1 a
2012/1/2 a
... a
2012/3/17 a
2012/3/18 a
2012/3/19 a
... a
2012/12/22 a
GETDATE() a
2012/12/24 b
... b
2013/1/1 b
2013/1/2 b
我曾嘗試:
SELECT x.Date
,CASE WHEN GETDATE() > x.Date THEN z.Value
ELSE y.Value
END AS Value
FROM TABLE_X x
LEFT JOIN TABLE_Y y ON x.Date = y.Date
LEFT JOIN TABLE_Z z ON x.Date = z.Date
的問題是,日期是不完美的FK引用。即日期在TABLE_X完成,但它們在Y和Z.
那麼什麼似乎是問題嗎?你有沒有嘗試過一些具體的問題? – aviad
@aviad我已編輯該問題以進一步說明。 – Kyle
當日期不見了時你想做什麼?跳過那一行?考慮它'很久以前'?重要的是:有沒有重複? – Confusion