读书人

一个流水表的查询有关问题

发布时间: 2012-02-02 23:57:14 作者: rapoo

一个流水表的查询问题
图书借阅记录
图书ID 会员ID 借阅时间 ...
b1 m1 2007-9-1
b2 m2 2007-9-1
b3 m3 2007-9-1
b1 m4 2007-9-11
b4 m4 2007--9-11
想得到图书最新的借阅信息,也就是图书b1现在m4手里,第一条记录就不要了,该怎么写查询语句,group by好像不太好用,因为表还有其它很多字段不能一起group by。


[解决办法]
刚才的错了 !!

下面的:

declare @a table(图书ID varchar(20),会员ID varchar(20),借阅时间 datetime)
insert @a
select 'b1 ' , 'm1 ' , '2007-9-1 '
union all
select 'b2 ' , 'm2 ' , '2007-9-1 '
union all
select 'b3 ' , 'm3 ' , '2007-9-1 '
union all
select 'b1 ' , 'm4 ' , '2007-9-11 '


select * from @a a where 会员ID=(
select 会员ID from @a b where 借阅时间=(select top 1 借阅时间 from @a order by 借阅时间 desc ) and 借阅时间=a.借阅时间 group by 会员ID
)
/*

(所影响的行数为 4 行)

图书ID 会员ID 借阅时间
-------------------- -------------------- ------------------------------------------------------
b1 m4 2007-09-11 00:00:00.000

(所影响的行数为 1 行)

*/

读书人网 >SQL Server

热点推荐