是指在 * 号前,还是在每个查询的 Top (num) 前面.
因为无论怎样,嵌套SQL里都要用到这些相同的排序字段,不然查出来的记录就会有问题.
这里not in 主要分页思想是查出top 50,其中不在top 40中的记录,即得到第5页,10一页的记录.
...
人有点调晕了,花了一个上午还没写好这个分页类.
现在是当局者迷糊中.....喝杯茶先
因为无论怎样,嵌套SQL里都要用到这些相同的排序字段,不然查出来的记录就会有问题.
这里not in 主要分页思想是查出top 50,其中不在top 40中的记录,即得到第5页,10一页的记录.
...
人有点调晕了,花了一个上午还没写好这个分页类.
现在是当局者迷糊中.....喝杯茶先
select * 之后,或存入临时表在处理阿。
(
--你的代码
select * FROM
( select top 15 Job_NO,C_ID,C.Customer_Name,StatusNo,Pay_Date,Create_Date FROM EServices,Customers C where Job_No not in
( select top 30 Job_No FROM EServices,Customers C where (1>0) and C.ID= EServices.C_ID Order by StatusNo,Pay_Date,Create_Date DESC
)
and C.ID= EServices.C_ID order by StatusNo,Pay_Date,Create_Date DESC
)
as TempTB order by StatusNo,Pay_Date,Create_Date ASC--
)
当我绑定数据的时候才发现,
现有105条记录.
第一个top 15 返回的16个记录. 最后一页返回是12条记录.
结果是第58条记录重复出现.
第一页:
sqlBuild =
"SELECT DISTINCT Top "+pageSize + " " + fieldName + " FROM (" +
sqlSelectHead + " top " + pageSize + " " + fielddName + " FROM " +
tbName + " WHERE (1>0)" +
sqlCondition + " ORDER BY " + sortName + " " + sortASC +
")" + " ORDER BY " + sortName + " " + sortASC;
我的测试记录为105条,每页15个记录.共7页.(方法如上面所述)
1. 加select distinct * from ( my result )
这里仍有大量的重复记录出现.
2. 加select distinct top "pagesize" from (my result)
这里存在少量记录重复,第一页为16个记录,最后一页为12个记录.
3.最简单的排序截取都有重复记录问题.
可能是多表关联,与结果集排序的原因.但已经想不出什么好方法了.现在都是简单的关联都无法成功.....................
这已经是连续三帖了,期待解决方法.
有曾碰到这个问题的朋友也请给个折衷的方案,谢谢