全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1427 8
2011-10-06
现在我有一个表,是几年时间内每个月持有股票的列表,共有两列,一列日期,一列股票代码

现在我要从数据库中取出这些股票在当月每个交易日的收盘价,不知道SQL语句该怎么写

我只知道如果只有一个股票列表的话,用where + in就可以了

现在是既有股票列表,还有时间,不知道怎么办了,请教大虾指教

另外我也想过从数据库中取整张表,然后连接下就好了,只不过数据太大了,而且要用两步完成,如果有一次性完成的办法就更好了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-10-7 18:31:22
More detail。
or show your sample data。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-10-8 13:50:40
hongxx 发表于 2011-10-7 18:31
More detail。
or show your sample data。
具体来说,有一张如下的表:
End_date Stock_code
2011-6-1   600001
2011-6-1   600002
...
2011-7-1   100001
2011-7-1   100002
这个表列出了每个月持有的股票名单
我现在要从总的行情数据库中取进入这些名单中的股票在当月的每个交易日的行情数据
不知道sql中的where子句该怎么写
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-10-8 14:11:40
股票持有表不是一般都是start-end格式存储的嘛?被展开成到交易日的了?
到交易日的话直接code=code date=date不就可以了
和到日的行情数据是同维度的啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-10-8 14:21:17
soporaeternus 发表于 2011-10-8 14:11
股票持有表不是一般都是start-end格式存储的嘛?被展开成到交易日的了?
到交易日的话直接code=code date= ...
股票持有表是按start-end存的,我只写了开始时间而已
问题是按你的说法是用proc sql中的表连接来做
如果只是用sql从数据库里取数据,得到新表该怎么写语句呢
我就知道如果只给个股票列表,可以写成
where stock_code in (select stock_code from xxx)
不知道即有股票代码,又有时间这两维的约束该怎么写where子句
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-10-8 14:30:42
a 日行情表 b 持有表
select a.*,b.start,b.end from a a left join b b
on a.code=b.code and b.start<=a.trading_date and a.trading_date<=b.end

日期的开闭区间需要视具体持有表的定义
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群