2017-01-24 83 views
0

我正在使用以下插入查詢來創建使用日期加入的兩個表之間的比較。SQLITE加入日期=日期+ x

INSERT INTO Comp_Table (Date, CKROne, CKRTwo, ChangeOne, ChangeTwo, State) 
SELECT BaseTbl.Date, BaseTbl.CKR, CompTbl.CKR, BaseTbl.Change, CompTbl.Change, 
CASE 
WHEN BaseTbl.Change > 0 AND CompTbl.Change > 0 THEN 'positive' 
WHEN BaseTbl.Change < 0 AND CompTbl.Change < 0 THEN 'positive' 
ELSE 'inversely' 
END AS 'Correlation' 
FROM BaseTbl 
JOIN CompTbl ON BaseTbl.Date = CompTbl.Date; 

這很好。不過,我希望能夠以滯後的方式加入表格。如在中,用戶可以定義他們是否想要在日期上進行完全匹配,或者如果他們想要使用發生的日期加上一個數字並且從後一個日期返回值以便將該數字與前一個日期進行比較。僞代碼示例:

用戶設置變量= 0,則

Join ComTbl On BaseTbl.Date = CompTbl.Date + 0; 

用戶設置變量= 7,然後

Join CompTbl On BaseTbl.Date = CompTbl.Date + 7; 
(joins 2012-01-01 from BaseTbl to 2012-01-08 from CompTbl) 

我嘗試添加天,就像您在WHERE子句中(「+7一天「),但這沒有奏效。我也嘗試使用Where子句與BaseTbl.Date = CompTbl.Date '+ 7 day',但也返回0值。這怎麼能在SQLite中完成?

回答

1

我想你可以使用DATE()功能打造你想要的WHERE條款:

INSERT INTO ... 
SELECT ... 
FROM BaseTbl 
INNER JOIN ComTbl 
    ON BaseTbl.Date = DATE(CompTbl.Date, '7 days') 
+0

如果日期格式實際上是'YYYY-MM-dd'。 –

+0

這樣做。謝謝! –