当前位置: 代码迷 >> Sql Server >> 这样的SQL语句怎么分页
  详细解决方案

这样的SQL语句怎么分页

热度:22   发布时间:2016-04-24 09:18:32.0
这样的SQL语句如何分页?
本帖最后由 luojianfeng 于 2015-03-16 13:53:54 编辑
这样的SQL语句如何分页?

下面一句SQL功能是:先按每个人的编号sUserCode分组,然后从每个人每天里选出最大时间dReadDateTime(dReadDateTime 每个人每天里的这个时间有重复的)的一条记录,那问题来了,如何分页呢?
select * from (select *,row_number() over(partition by sUserCode order by dReadDateTime desc) rn  from tReadingDtl 
where dReadDateTime between '" + lp.ReadDateTime + "' and '" + lp.ReadDateTime2 + "') t where t.rn <=1 

还要和另外2个表联合查询:
left join  b on a.sUserCode=b.sUserCode
left join  c on a.sAreaNO = c.sAreaNO

还要模糊查询:
a.sAreaNO like '%" + lp.sAreaNO + "%'

数据库是SQL SERVER 2008
------解决思路----------------------
SELECT * FROM(
select *,ROW_NUMBER()OVER(ORDER BY sUserCode)ROW FROM
(select *,row_number() over(partition by sUserCode order by dReadDateTime desc) rn
from tReadingDtl 
where dReadDateTime between '" + lp.ReadDateTime + "' and '" + lp.ReadDateTime2 + "')t
where t.rn <=1
)a
left join  b on a.sUserCode=b.sUserCode
left join  c on a.sAreaNO = c.sAreaNO
WHERE a.ROW BETWEEN 1 AND 10
类似这样
  相关解决方案