2016-03-19 10 views
0

İlk 22 satırı seçen ve sorgunun kalan satırlarını seçen iki sorgu çalıştırmaya çalışıyorum. En üst 22 satırı seçebiliyorum. Ama şimdi sıradaki 22 satırı seçmem gerekiyor. Temelde, ilk 22 satırı görüntüleyen ve sonraki sonraki 22 satır gösterecektir erişimde 2 rapor var.Bir yardım çok takdir edilecektir. Beni doğru yönde gönderebilecek bir işlev biliyor mu? ms erişiminde sorgudan son satır kümesi nasıl seçilir?

Burada üst 22 satırları seçin o ana kadar benim sorgu:

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

benzer olduğunu Burada bir cevap ile soru: http://stackoverflow.com/questions/10455746/select-records-skipping-rows-in-ms-access –

+0

Bu sorguda veya başka bir alanda client_id farklı mı, benzersiz bir sütun mu? – Parfait

cevap

0

client_id ve sayısını çalıştırarak hesaplanmış satır numarasını kullanarak düşünün (bu çifti varsayarak agrega sorguda tektir). Ardından, gerekli alt alanı ayarlamak için bu alt sorguyu WHERE maddesinde kullanın. Saklanan sorgudan TOP maddesini kaldırdığınızdan emin olun.

en 22(gerçek depolanmış sorgu adı yerine 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 

Sonraki 22(gerçek sorgu adı yerine 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 
İlgili konular