2017-05-11 32 views
0

我加入了一個來自固定日期,並希望返回前一天的數據在另一個表中的ID列表我有兩種方法,但他們返回不同的結果。日期爲2017年1月2日的case statement v day-1 in join why different results?

on a.id = b.id 
and a.date = b.timestamp-1 

一個固定的日期我也嘗試了case語句

on a.id = b.id 
and case when date = '2017-01-02' then b.timestamp = '2017-01-01' end 

任何想法,爲什麼這會產生不同的結果?

+0

請提供DDL或定義所涉及的列,並且越來越 – ScottMcG

回答

1

使用DATE_SUB()執行日期計算:

ON a.id = b.id 
AND a.date = DATE_SUB(b.timestamp, INTERVAL 1 DAY) 
+0

喜輸出的一些描述,我們使用Netezza公司和它看起來像DATE_SUB不一個支持的函數 –

+0

我不知道Netezza,我的答案是MySQL。檢查Netezza文檔,它可能具有類似的日期功能。 – Barmar

+0

如果您不使用MySQL數據庫,請勿使用MySQL標記。 – Barmar