首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > IBM DB2 >

关于日期范围内取值的有关问题

2012-03-16 
关于日期范围内取值的问题我现在有如下需求:A表员工 日期a2001/5/1a2007/4/4a2009/12/12a2011/2/11B表员工

关于日期范围内取值的问题
我现在有如下需求:

A表

员工 日期
a 2001/5/1
a 2007/4/4
a 2009/12/12
a 2011/2/11

B表
员工 日期 指示
a 2001/5/1 N
a 2008/8/1 Y
a 2010/3/2 N

这只是针对于一个员工,真实数据有很多员工,

需求是:我要将A表中的每条数据,根据其日期在B表中查找,如果有对应的日期,就取其对应的指示,如果没有,就要找比它大的日期中最小的那条记录所对应的指示,

比如A表中的2007/4/4这条记录,在B表中没有2007/4/4这个日期,就必须找B表中比这个日期大的,也就是2008/8/1和2010/3/2, 这两个中选最小的,也就是2008/8/1号对应的指示,也就是Y,

SQL如何写,

弄了很久,还是不行,


[解决办法]

SQL code
select X.员工      ,X.日期      ,X.B_日期      ,B.指示from B,(  select A.员工        ,A.日期        ,min(B.日期) as B_日期  from A, B  where A.员工 = B.员工    and A.日期 <= B.日期  group by A.员工, A.日期  ) Xwhere B.员工 = X.员工  and B.日期 = X.B_日期 

热点排行