2
我刚开始使用SQL,并且一直在搜索谷歌以获得快速提示,直到现在,但是我一直在这个问题上停留了一段时间。从一个表中选择数据,条件是来自另一个表的两个唯一值
我有两个表格,Stock_Data有2列,Id和Date。第二个表非常大,包含几百万行数据,称为Options_Data。这第二张表还有一个Id列和一个Date列以及大约12个额外的数据列,我想下载。
我想什么做的是
for each row i in Stock_Data
SELECT * FROM Option_Data where Option_Data.Id = Stock_Data.Id(i)
AND WHERE Option_Data.Date BETWEEN Stock_Data.Date-60 days and Stock_data.Date+60 days
end
本质;从股票数据中获取股票ID和唯一的事件日期,返回到Option_Data并在事件日期前后60天取出该股票ID的数据。
我只有真的在matlab中正确编码,因此循环类比和伪代码。 我可以使用Id的唯一解决问题,但它涉及下载更多的数据比必要的,这是每个ID的唯一范围的数据,让我陷入困境。
你不需要日期间隔吗? 'Stock_Data.Date - INTERVAL 60 DAY and Stock_data.Date + INTERVAL 60 DAY' – Cfreak 2012-08-07 15:36:34
@Cfreak - AFAIK *(我很乐意纠正)*您的建议在语法上是正确的,但是当省略INTERVAL时,一个隐式转换,默认为+/-'DAY's。 – MatBailie 2012-08-07 15:38:19
谢谢菲尔布特,它像一个魅力一样工作,为我节省了数小时的试验和错误,非常感谢! – user1582315 2012-08-07 19:35:01