我正在使用以下插入查询来创建两个表之间的比较,使用要加入的日期。
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天')中那样添加天,但这不起作用。我还尝试使用带有BaseTbl.Date = CompTbl.Date '+ 7 day'
的Where子句,但也返回了0值。如何在SQLite中实现?
答案 0 :(得分:1)
我认为您可以使用DATE()
函数构建所需的WHERE
子句:
INSERT INTO ...
SELECT ...
FROM BaseTbl
INNER JOIN ComTbl
ON BaseTbl.Date = DATE(CompTbl.Date, '7 days')