将当前有效期下同类的最小有效日期选出来。。
如表A:(sid,type,edate)
sid,type,edate
1,B,2014-07-20
1,B,2014-07-10
1,A,2014-05-20
1,A,2014-04-10
2,C,2014-07-20
2,B,2014-07-10
2,C,2014-04-10
2,A,2014-02-10
...
例如:取出截止到7月份(2014-07-31),正在生效的不同类型最小有效数据,想得到的结果是
1,B,2014-07-10 正生效
1,A,2014-04-10 也在生效
2,C,2014-07-20 正生效
2,B,2014-07-10 正生效
2,C,2014-04-10 也正生效
...
请指导,谢谢!
------解决方案--------------------
select * from
(
select *,ROW_NUMBER() over(partition by sid, type order by edate) as rn from [表A]
where edate <= '2014-07-31'
) t where rn =1