首页新闻找找看学习计划

问一个SQL查询语句

0
悬赏园豆:10 [已解决问题] 解决于 2013-09-29 13:49

有这样一个需求.我需要查询一个员工薪资表最近几次的缴费记录

次数是动态设置的。

 

比如 我6 7 8 月     6月份和8月份缴费了 如果我设置是查看2次 那么看到的是6月份和8月份

 

如果是6月和9月 那么2次就是6月份和9月份 类推。

何小宝的主页 何小宝 | 初学一级 | 园豆:19
提问于:2013-09-12 11:35
< >
分享
最佳答案
1

直接上demo:

create table mytable(id int identity(1,1),[month] int, [insertTime] datetime) 

insert into mytable values(6 , '2013-6-2' )
insert into mytable values(6 , '2013-6-3' )
insert into mytable values(6 , '2013-6-4' )
insert into mytable values(6 , '2013-6-5' )
insert into mytable values(7 , '2013-7-5' )
insert into mytable values(7 , '2013-7-6' )
insert into mytable values(7 , '2013-7-7' )
insert into mytable values(8 , '2013-8-8' )
insert into mytable values(9 , '2013-9-9' )
go

语句:

select * from mytable a where id in(select top 2 id from mytable b where a.[month] =b.[month] order by insertTime desc )

结果

收获园豆:10
袁家小黑球 | 小虾三级 |园豆:1045 | 2013-09-12 19:32
其他回答(3)
0

按照缴费时间倒叙,取top N。条件是已缴费。

幻天芒 | 园豆:36594 (高人七级) | 2013-09-12 12:54
0

表结构呢?。

jone_e | 园豆:1410 (小虾三级) | 2013-09-12 12:55
0

题目说的不够清楚,也没有表结构啊

select top n xxx from tablename

where yyy='已缴费' 这样你想要几条n就了。

Albert Fei | 园豆:2102 (老鸟四级) | 2013-09-12 13:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册