2

我刚刚开始使用 SQL,并且直到现在一直在谷歌搜索快速提示,但是我已经被困在这个上一段时间了。

我有两个表,Stock_Data 有 2 列,ID 和日期。第二个表非常大,包含几百万行数据,称为 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

本质上; 从 Stock_Data 中获取股票 ID 及其唯一的事件日期,前往 Option_Data 并在事件日期前后 60 天取出该股票 ID 的数据。

我只在matlab中真正正确地编码过,因此循环类比和伪代码。我可以仅使用 ID 来解决问题,但它涉及下载比必要更多的数据,这是每个 ID 的唯一数据范围让我遇到麻烦。

4

1 回答 1

0
SELECT
  Option_Data.*
FROM
  Stock_Data
INNER JOIN
  Option_Data
    ON  Option_Data.ID = Stock_Data.ID
    AND Option_Data.Date BETWEEN Stock_Data.Date-60 and Stock_data.Date+60
于 2012-08-07T15:31:13.663 回答