当前位置: 代码迷 >> Sql Server >> 将现阶段有效期下同类的最小有效日期选出来。【好似很拗口,可以进去指教】
  详细解决方案

将现阶段有效期下同类的最小有效日期选出来。【好似很拗口,可以进去指教】

热度:80   发布时间:2016-04-24 10:02:51.0
将当前有效期下同类的最小有效日期选出来。【好似很拗口,可以进去指教】
将当前有效期下同类的最小有效日期选出来。。

如表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
  相关解决方案