情况是这样的
表1是所有股票发布公告的日期,
表2是所有股票在6年之内的所有交易记录,日期不连续,按时间顺序排列现在想在表2中提取数据,满足:
如果以表2中最接近表1某支股票公告信息的日期设为0
则提取该日期之前40个和该日期之后9个交易数据
本来如果日期是连续的,用datediff函数很简单,但就是因为交易记录的日期不是连续的
所以不知道应该怎么完成....求助~~~先谢谢了~~很急....
解决方案 »
- 关于时间段提取数据的问题?
- 请问MSSQL 中如何把字段为字符型的字段转换成数据型来操作呢?
- 如何得到下属部门的员工?
- 修改mysql中的 character_set_server
- SQL server 2000的问题,高分送英雄
- 如何将每一天的都变成一条记录??
- execl数据导入
- vf的程序编译成.exe后,执行时总提示无法找到vf的支持库(can not locate vf support library),应如何处理?!
- 一个表写3、4十个字段和3、4个字段但多3、4十倍的记录数,哪个select快
- 存取最新500条记录,这样的sql语名怎么写?
- 请问:如何在SQL中选择前三条的记录,是每个商品的前三名,不是所有商品的前三名
- SQL 疑难杂症
from bulletin a inner join trade b
on a.stockno=b.stockno
where b.id in
(
select top 40 id
from table2
where stockno=a.stockno
and date<a.date
order by date desc
)
union
select b.*
from bulletin a inner join trade b
on a.stockno=b.stockno
where b.id in
(
select top 9 id
from table2
where stockno=a.stockno
and date>a.date
order by date
)
where
c.rq in (
select top 41 b.rq from t_2 b
where b.rq <= ( select a.rq from t_1 a
where a.股票名字 = b.股票名字 )
and b.股票名字 = c.股票名字
order by b.rq desc
)union allselect * from t_2 c
where
c.rq in (
select top 9 b.rq from t_2 b
where b.rq > ( select a.rq from t_1 a
where a.股票名字 = b.股票名字 )
and b.股票名字 = c.股票名字
)