Sorting 访问报告:如何在一个字段上分组,但按另一个字段排序?
我读过类似的问题,但它们似乎不太适合我的问题,或者它们处于不同的环境中 我在MS Access 2016工作 我有一个客户投诉报告,其中包含以下字段:年、月、计数([投诉])、投诉描述。 (投诉#是我们分配给表中输入的每个投诉的文字ID号) 我按年度和月份对报告进行分组,然后按投诉描述进行分组,并对每个描述进行投诉数量统计,然后进行投诉数量统计,将当月的投诉总数相加,并将其粘贴在月底,得出如下结果:Sorting 访问报告:如何在一个字段上分组,但按另一个字段排序?,sorting,ms-access,report,grouping,Sorting,Ms Access,Report,Grouping,我读过类似的问题,但它们似乎不太适合我的问题,或者它们处于不同的环境中 我在MS Access 2016工作 我有一个客户投诉报告,其中包含以下字段:年、月、计数([投诉])、投诉描述。 (投诉#是我们分配给表中输入的每个投诉的文字ID号) 我按年度和月份对报告进行分组,然后按投诉描述进行分组,并对每个描述进行投诉数量统计,然后进行投诉数量统计,将当月的投诉总数相加,并将其粘贴在月底,得出如下结果: 2020 03 <= (this is the month group header)
2020 03 <= (this is the month group header)
complaint desc | count of complaints/desc
---------------------------------------------
electrical | 2 {This section is
cosmetic | 6 {in the Complaint_desc
mechanical | 1 {group footer
---------------------------------------------
9 <= (this is month group footer)
不管我做什么似乎都不起作用,desc组的内置排序“a在顶部”覆盖了查询中的排序。添加“按投诉排序”也会被忽略。我尝试添加一个按计数排序(投诉#),access告诉我不能在order by中使用聚合函数(但我认为它无论如何都会被重写)。我还试着按计数分组(投诉),也按计数分组。尝试将投诉描述和计数(投诉描述)移动到投诉组页眉,结果弄乱了月尾的总计数,并将投诉描述分解,使其无法达到原来的目的
我真的不认为这一改变会有什么大不了的,但一个解决方案已经让我逃避了一段时间。我读过类似的问题,并试着举例说明,但它们并没有达到我预期的结果
有什么想法吗?我想出来了!感谢@UnhandledException,他让我走上了正确的轨道 以下是我所做的: 报告所基于的原始查询包含以下内容:
Design mode:
Field | Year | Month | Complaint_Desc | Complaint# |
Total | Group By | Group By | Group By | Group By |
Sort | | | | |
or in SQL:
SELECT Year, Month, [tbl Failure Mode].[Code description], [Complaint Data Table].[Complaint #]
FROM [tbl Failure Mode] RIGHT JOIN [Complaint Data Table] ON [tbl Failure Mode].[ID code] = [Complaint Data Table].[Failure Mode]
GROUP BY Year, Month, [tbl Failure Mode].[Code description], [Complaint Data Table].[Complaint #];
然后我使用报告的group和sort函数来显示我想要的结果,除了我提到的hiccup
我根据该查询提出了另一个查询:
Design mode:
Field | Year | Month | Complaint_Desc | Complaint# |
Total | Group By | Group By | Group By | Count |
Sort | Descending | Descending | | Descending |
or in SQL:
SELECT [qry FailureMode].Year, [qry FailureMode].Month, [qry FailureMode].[Complaint_description], Count([qry FailureMode].[Complaint #]) AS [CountOfComplaint #], [qry FailureMode].Complaint
FROM [qry FailureMode]
GROUP BY [qry FailureMode].Year, [qry FailureMode].Month, [qry FailureMode].[Code description], [qry FailureMode].Complaint
ORDER BY [qry FailureMode].Year DESC , [qry FailureMode].Month DESC , Count([qry FailureMode].[Complaint #]) DESC;
然后我改变了报告结构:
我删除了Complaint_Desc组,将Complaint_Desc和CountofComplaint#(它现在不是一个函数,但在我的新查询中是自己的计算字段)移动到报告的细节部分。然后,我删除了我的第二个计数(投诉),作为每个月的总数,并将其替换为“AccessTotalScontofComplaint”,即=Sum([CountOfComplaint#]),我通过右键单击详细信息中的CountOfComplaint#Desc滚动到“total”并单击“Sum”自动创建了该计数。(我删除了额外的AccessTotalsCountOfComplaint,它在我需要它的月份组页脚之外…)
瞧
我希望这对其他人有所帮助,再次感谢您为我指出了正确方向的未处理异常。我找到了答案!感谢@UnhandledException,他让我走上了正确的轨道 以下是我所做的: 报告所基于的原始查询包含以下内容:
Design mode:
Field | Year | Month | Complaint_Desc | Complaint# |
Total | Group By | Group By | Group By | Group By |
Sort | | | | |
or in SQL:
SELECT Year, Month, [tbl Failure Mode].[Code description], [Complaint Data Table].[Complaint #]
FROM [tbl Failure Mode] RIGHT JOIN [Complaint Data Table] ON [tbl Failure Mode].[ID code] = [Complaint Data Table].[Failure Mode]
GROUP BY Year, Month, [tbl Failure Mode].[Code description], [Complaint Data Table].[Complaint #];
然后我使用报告的group和sort函数来显示我想要的结果,除了我提到的hiccup
我根据该查询提出了另一个查询:
Design mode:
Field | Year | Month | Complaint_Desc | Complaint# |
Total | Group By | Group By | Group By | Count |
Sort | Descending | Descending | | Descending |
or in SQL:
SELECT [qry FailureMode].Year, [qry FailureMode].Month, [qry FailureMode].[Complaint_description], Count([qry FailureMode].[Complaint #]) AS [CountOfComplaint #], [qry FailureMode].Complaint
FROM [qry FailureMode]
GROUP BY [qry FailureMode].Year, [qry FailureMode].Month, [qry FailureMode].[Code description], [qry FailureMode].Complaint
ORDER BY [qry FailureMode].Year DESC , [qry FailureMode].Month DESC , Count([qry FailureMode].[Complaint #]) DESC;
然后我改变了报告结构:
我删除了Complaint_Desc组,将Complaint_Desc和CountofComplaint#(它现在不是一个函数,但在我的新查询中是自己的计算字段)移动到报告的细节部分。然后,我删除了我的第二个计数(投诉),作为每个月的总数,并将其替换为“AccessTotalScontofComplaint”,即=Sum([CountOfComplaint#]),我通过右键单击详细信息中的CountOfComplaint#Desc滚动到“total”并单击“Sum”自动创建了该计数。(我删除了额外的AccessTotalsCountOfComplaint,它在我需要它的月份组页脚之外…)
瞧
我希望这对其他人有所帮助,再次感谢为我指明正确方向的未处理异常。使用子查询帮助不会吗?@UnhandledException以什么方式?如果我创建一个子查询并使用它进行排序,我相信投诉描述组内置的“a on Top”排序将覆盖它。或者我误解了你的建议?使用子查询是否有帮助?@UnhandledException以何种方式?如果我创建一个子查询并使用它进行排序,我相信投诉描述组内置的“a on Top”排序将覆盖它。或者我误解了你的建议?这几乎就是我的意思。据我所知,您使用两个单独的Microsoft Access查询对象。我会想在一个查询中同时使用这两种方法,所以在子查询中也是如此。我的意思是这也是可能的。但最终结果是一样的。很高兴你成功了,我明白你的意思了。你是对的,我现在有2个查询对象。充分披露:我没有太多的子查询经验;所以这不是我马上想到的地方。当你指出这个方法的时候,我考虑了一下,我突然想到,“哦。。。如果我在这个基础上进行另一个查询。。。我会得到我需要的。我需要好好学习,这样我才能像你建议的那样更有效率地做事。再次感谢!这几乎就是我的意思。据我所知,您使用两个单独的Microsoft Access查询对象。我会想在一个查询中同时使用这两种方法,所以在子查询中也是如此。我的意思是这也是可能的。但最终结果是一样的。很高兴你成功了,我明白你的意思了。你是对的,我现在有2个查询对象。充分披露:我没有太多的子查询经验;所以这不是我马上想到的地方。当你指出这个方法时,我考虑了一下,我突然想到,“哦……如果我根据这个问题再做一次查询……我会得到我需要的。我需要学习,这样我才能像你建议的那样更有效率地做事情。再次感谢!