全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5742 6
2011-12-19
我现在有两个表
第一个表有一个日期列,里面的日期有的是交易日,有的不是
第二个表有一个交易日列,该列是排好序的交易日
现在想要得到一个新的表,该表有两列
第一列取自表一的日期列,第二列是从表二连接得到的,如果第一列的日期是交易日,则该列的值就是交易日,否则取之前最近的交易日
请问这样的SQL语句该怎么写,谢谢!
二维码

扫码加我 拉你入群

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

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

全部回复
2011-12-19 15:13:03
...
max(trading_date) as the_date_you_want
....
from t1 a left join t2 b
on a.date>=b.date
二维码

扫码加我 拉你入群

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

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

2011-12-19 15:48:13
soporaeternus 发表于 2011-12-19 15:13
...
max(trading_date) as the_date_you_want
....
你的意思是在左外连接的时候,条件选成大于等于,然后在选右表的交易日时再Max一下选最大的?
我这么做过,显示错误如下:

NOTE: The execution of this query involves performing one or more Cartesian product joins that
      can not be optimized.
NOTE: The query requires remerging summary statistics back with the original data.

我的版本是9.0,不知道更高的版本能否实现。
二维码

扫码加我 拉你入群

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

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

2011-12-19 15:50:15
playmore 发表于 2011-12-19 15:48
你的意思是在左外连接的时候,条件选成大于等于,然后在选右表的交易日时再Max一下选最大的?
我这么做过 ...
没有别的语法错误的话,这个不是错误

二维码

扫码加我 拉你入群

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

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

2011-12-19 16:05:05
soporaeternus 发表于 2011-12-19 15:50
没有别的语法错误的话,这个不是错误
嗯,看错了,这个是Note
但是会很长时间都没有结果
只能手动Break跳出
二维码

扫码加我 拉你入群

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

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

2011-12-19 16:08:00
这里是TradeDay的表格,后缀改成sas7bdat即可使用
麻烦帮忙测试下,多谢了
附件列表

tradeday.txt

大小:69 KB

 马上下载

后缀改成sas7bdat即可

二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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