取得最后日期的记录语句
学号 班级 姓名 年龄 打卡日期 打卡内容
0001 一班 张三 20 20130801 图书馆
0001 一班 张三 20 20130701 食堂
0001 一班 张三 20 20130709 宿舍
0002 一班 李四 20 20130802 教室
0002 一班 李四 20 20130706 图书馆
0002 一班 李四 20 20130708 宿舍
同一个学号,会有多个记录,想找出所有最后打卡日期的那条,谢谢!
结果为:
学号 班级 姓名 年龄 打卡日期 打卡内容
0001 一班 张三 20 20130801 图书馆
0002 一班 李四 20 20130802 教室
------解决方案--------------------SELECT * FROM tb a
WHERE NOT EXISTS
(
SELECT 1
FROM tb b
WHERE a.学号 = b.学号
AND b.打卡日期 > a.打卡日期
)
------解决方案--------------------select a.* from
tb a,
(select 学号,max(打卡日期) as 打卡日期
from tb
group by 学号) b
where a.学号=b.学号 and a.打卡日期=b.打卡日期
------解决方案--------------------SELECT b.* FROM
(SELECT DISTINCT 学号 FROM tb) a
CROSS APPLY
(SELECT TOP(1) * FROM tb m WHERE m.学号 = a.学号 ORDER BY m.打卡日期 DESC) b
------解决方案--------------------;WITH cte AS
(
SELECT rowno = ROW_NUMBER() OVER(PARTITION BY 学号 ORDER BY 打卡日期 DESC),* FROM tb