当前位置: 代码迷 >> DB2 >> 关于日期范围内取值的有关问题
  详细解决方案

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

热度:409   发布时间:2013-02-26 00:00:00.0
关于日期范围内取值的问题
我现在有如下需求:

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_日期
  相关解决方案