这样的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