我读过类似的问题,他们似乎不太适合我的问题,或者他们在不同的环境中。
我在MS-Access 2016工作。
我有一个客户投诉报告,其中有字段:年,月,计数(投诉#),complaint_desc。(投诉编号是我们分配给表格中输入的每个投诉的文字ID号)
我将报告按年份和月份分组,然后按complaint_desc分组,并对每个desc进行投诉数量计数,然后对投诉数量进行计数,将该月的投诉总数加起来,并将其放在月份页脚中,结果如下所示:
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)每个月重复这个组
这一切都很好。我想做的是按计数降序(complaint#)对投诉描述组中的记录进行排序,使其看起来如下所示:
2020 03
complaint desc | count of complaints/category
---------------------------------------------
cosmetic | 6
electrical | 2
mechanical | 1
---------------------------------------------
9然而,我所做的似乎都不起作用,desc组的内置排序"a on top“覆盖了查询中的排序。添加按complaint#排序也会被忽略。我尝试添加一个按计数排序(complaint#),access告诉我在order by中不能有聚合函数(但我认为它无论如何都会被覆盖)。我还尝试了group by count(complaint#),这也是group by中的聚合。尝试将complaint_desc和count( complaint# )移动到complaint#组标题,但它搞乱了月份页脚中的总计数,还拆分了投诉描述,从而违背了最初的目的……
我真的认为这个变化不会是什么大问题,但我现在已经有一段时间没有解决方案了。我也读过类似的问题,并试着按照例子来做,但它们并没有得到我想要的结果。
有什么想法吗?
发布于 2020-03-12 01:07:38
我想通了!感谢@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函数来显示我想要的结果,除了我提到的那个问题。
我根据该查询进行了另一个查询:
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# (它现在不是一个函数,但它自己的计算字段来自我的新查询)移到报告的DETAIL部分。然后我删除了我的第二个计数(complaint#),它是在月份页脚中作为每个月的总计,并将其替换为"AccessTotalsCountOfComplaint #“,它是=Sum(CountOfComplaint #),我可以通过右键单击详细信息滚动到”总计“中的CountofComplaint_Desc并单击"Sum”来自动创建它。(我删除了超出我需要的月组页脚的额外AccessTotalsCountOfComplaint#)
Et Voila
我希望这对其他人有所帮助,并再次感谢为我指明了正确方向的未处理异常。
https://stackoverflow.com/questions/60637443
复制相似问题