以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 查询唯一值 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=115708) |
-- 作者:良才 -- 发布时间:2018/3/13 8:27:00 -- 查询唯一值 S elect top 1 学生编号,学生姓名 From {缴退费信息} GROUP BY 学生编号,学生姓名 ORDER BY 缴费日期 DESC 这样只能查询一个学生,查询所有学生最后一次缴费记录,请老师指教,谢谢
[此贴子已经被作者于2018/3/13 11:37:34编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/3/13 8:36:00 -- 如果是sqlserver数据库,可以用 row_number 函数,参考
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=113873&skin=0
|
-- 作者:良才 -- 发布时间:2018/3/19 10:17:00 -- 老师我是Access数据库 |
-- 作者:有点甜 -- 发布时间:2018/3/19 10:45:00 -- 以下是引用良才在2018/3/19 10:17:00的发言:
老师我是Access数据库
同样,可以参考 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=113873&skin=0
|
-- 作者:良才 -- 发布时间:2018/3/19 11:04:00 -- 是这样吧! S elect Max(缴费日期) As 缴费日期,学生编号 From {学生缴费} GROUP BY 学生编号
|
-- 作者:有点甜 -- 发布时间:2018/3/19 11:18:00 -- 如果要获取整条记录,参考做法
https://www.cnblogs.com/netserver/p/4518995.html
https://www.cnblogs.com/isun/archive/2012/12/22/2829528.html
[此贴子已经被作者于2018/3/19 11:18:31编辑过]
|
-- 作者:良才 -- 发布时间:2018/3/19 15:02:00 -- s elect a.* from (S elect 学生编号,学期,Count(学生编号) as 数量 from {缴退费信息} group by 学生编号,学期) as a where 1 > (s elect count(*) from (S elect 学生编号,学期,Count(学生编号) as 数量 from {缴退费信息} group by 学生编号,学期) as b where b.学生编号 = a.学生编号 and b.数量 > a.数量 ) order by a.学生编号, a.数量 这样太慢
|
-- 作者:有点甜 -- 发布时间:2018/3/19 15:11:00 -- 改成这样
select * from {缴退费信息} as a inner join (Select 学生编号, max(缴费日期) As 最后日期 From {缴退费信息} GROUP BY 学生编号) as b on a.学生编号=b.学生编号 and a.缴费日期=b.最后日期 |
-- 作者:良才 -- 发布时间:2018/3/19 15:21:00 -- s elect a.* from {缴退费信息} a,(s elect 学生编号,max(缴费日期) As 缴费日期 from {缴退费信息} group by 学生编号) b where a.学生编号 = b.学生编号 and a.缴费日期 = b.缴费日期 order by a.学生编号 |
-- 作者:良才 -- 发布时间:2018/3/19 15:22:00 -- 谢谢,老师 |