一个流水表的查询问题
图书借阅记录
图书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 行)
*/