0
我有以下的MS Access查询,我想它返回按名称排序的结果和“分页”的“伪造”一个ROWNUMBER寻呼和订购MS Access查询
select * from (SELECT *
FROM (SELECT
s.name as SHolderCategory,
c1.id,
c1.fmember,
c1.link,
m.name as category,
c1.name,
c1.address1,
c1.address2,
c1.city,
c1.state,
c1.zip,
(SELECT COUNT(c2.id) FROM orgs AS c2 WHERE c2.id <= c1.id) AS rownumber
FROM
((orgs AS c1 inner join membershipcls m on m.Id = c1.mClassID)
inner join SHolderscategories s on s.Id = c1.SHolderCategoryID
)
where c1.active = 1)
order by c1.name)
WHERE rownumber > 20 AND rownumber <=40
这里的问题是,排序在执行分页的where子句之前完成。 所以它最终一次排序一个页面,而不是排序整个结果集然后分页......所以结果是错误的,因为在页面1中我有名字以a开头,然后在第2页它出现回到以c开头的名字....等等
当我尝试获取订单子句,以便查询首先执行分页...先生ACCESS是愤怒!并告诉我这是一个复杂的查询!
对此的任何解决方法?
这应该是有用http://stackoverflow.com/q/1900635/2448686 – ashareef