2016-03-19 192 views
0

我想运行两个查询,一个选择前22行,另一个选择查询的其余行。我可以选择前22行。但现在我需要选择接下来的22行。基本上我有2个访问报告,一个显示前22行,下一个显示下22行。任何帮助将不胜感激。有没有人知道一个功能可以让我朝着正确的方向发展?如何从ms查询中选择最后一组行查询

这是迄今为止我的查询选择最上面的22行:

SELECT TOP 22[UB-04_line_items].client_id, [UB-04_line_items].revenue_code, Revenue_Codes.rev_code_desc, [UB-04_line_items].total_chgs, [UB-04_line_items].cpt_code, [UB-04_line_items].service_units, [UB-04_line_items].service_date, [UB-04_line_items].total_chgs, Sum(IIf(IsNull([reason_code])=False,[disputed_amount],0)) AS [AMT DISPUTED], GetList("Select Distinct reason_code From [Itemized_statements] As T1 Where t1.reason_code <> NULL AND t1.client_id = " & [Itemized_statements].client_id & " AND T1.revenue_code = " & [Itemized_statements].revenue_code & "","",", ") AS [Err Code] 
FROM [UB-04_line_items] INNER JOIN (Itemized_Statements LEFT JOIN Revenue_Codes ON Itemized_Statements.revenue_code = Revenue_Codes.revenue_code) ON [UB-04_line_items].client_id = Itemized_Statements.client_id 
GROUP BY [UB-04_line_items].client_id, [UB-04_line_items].revenue_code, Revenue_Codes.rev_code_desc, [UB-04_line_items].cpt_code, [UB-04_line_items].service_units, [UB-04_line_items].service_date, [UB-04_line_items].total_chgs, [UB-04_line_items].total_chgs, Itemized_Statements.client_id, Itemized_Statements.revenue_code 
HAVING ((([UB-04_line_items].client_id)=[Itemized_Statements].[client_id]) AND ((Itemized_Statements.client_id)=[forms]![frmClients]![client_ID]) AND ((Itemized_Statements.revenue_code)=[UB-04_line_items].[revenue_code])) 
ORDER BY Itemized_Statements.client_id; 
+2

有一个类似问题与答案在这里:http://stackoverflow.com/questions/10455746/select-records-skipping-rows-in-ms-access –

+0

client_id在此查询或其他字段中是唯一列吗? – Parfait

回答

0

考虑使用一个计算行数通过运行client_id和计(假设这对处于汇总查询唯一)。然后,在WHERE子句中使用此子查询来调整所需的范围。务必从存储的查询中删除TOP子句。

前22(替代QRY实际存储查询名称)

SELECT (SELECT Count(*) 
     FROM Qry sub 
     WHERE sub.client_id < Qry.client_id 
      OR (sub.client_id = Qry.client_id 
       AND sub.revenue_code <= Qry.revenuce_code)) As RowNo, * 
FROM Qry 
WHERE (SELECT Count(*) 
     FROM Qry sub 
     WHERE sub.client_id < Qry.client_id 
      OR (sub.client_id = Qry.client_id 
       AND sub.revenue_code <= Qry.revenuce_code)) <= 22 

下一页22(替代QRY实际查询名称)

SELECT (SELECT Count(*) 
     FROM Qry sub 
     WHERE sub.client_id < Qry.client_id 
      OR (sub.client_id = Qry.client_id 
       AND sub.revenue_code <= Qry.revenuce_code)) As RowNo, * 
FROM Qry 
WHERE (SELECT Count(*) 
     FROM Qry sub 
     WHERE sub.client_id < Qry.client_id 
      OR (sub.client_id = Qry.client_id 
       AND sub.revenue_code <= Qry.revenuce_code)) BETWEEN 23 AND 44