sql 分页显示问题

MarkKings 2010-08-27 02:36:06
现在有一张联系记录表 id,联系时间,联系人,内容,客户名等
现要抽取每个客户最新的联系记录,经请教后语句为:
select t.* from tb t where 联系时间 = (select max(联系时间) from tb where 客户名 = t.客户名) order by order by t.联系时间 desc 


现在需要将查询结果分页,怎么处理啊
...全文
69 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
MarkKings 2010-08-30
  • 打赏
  • 举报
回复
非常感谢 学习了 结贴
百年树人 2010-08-28
  • 打赏
  • 举报
回复
try
SELECT 
TOP 页大小 *
FROM
(
select
row_number() over(order by 联系时间 desc) RowNumber,
t.*
from tb t
where 联系时间 = (select max(联系时间)
from tb
where 客户名 = t.客户名)
) t2
WHERE
RowNumber > 页大小*(页数-1)
order by
order by 联系时间 desc
MarkKings 2010-08-27
  • 打赏
  • 举报
回复
~~~~~等
blank223 2010-08-27
  • 打赏
  • 举报
回复
帮顶 ~~~回复内容太短了!
MarkKings 2010-08-27
  • 打赏
  • 举报
回复
顶一下 期待回答
MarkKings 2010-08-27
  • 打赏
  • 举报
回复
等待大侠指点
MarkKings 2010-08-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhouzhijian888 的回复:]
用top
[/Quote]
我知道用top啊
select top 1 * from(select t.* from tb t where 联系时间 = (select max(联系时间) from tb where 客户名 = t.客户名) order by order by t.联系时间 desc) as m

提示:除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
不论结果对错 改成
select top 1 * from(select top 100 percent t.* from tb t where 联系时间 = (select max(联系时间) from tb where 客户名 = t.客户名) order by order by t.联系时间 desc) as m
再加上 where 子句又提示 对象名 'm' 无效。
zhouzhijian888 2010-08-27
  • 打赏
  • 举报
回复
用top
MarkKings 2010-08-27
  • 打赏
  • 举报
回复
sqlserver 2005
王向飞 2010-08-27
  • 打赏
  • 举报
回复
什么版本的数据库?

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧