首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问报告:如何在一个字段上分组,但按另一个字段排序?

问访问报告:如何在一个字段上分组,但按另一个字段排序?
EN

Stack Overflow用户
提问于 2020-03-11 21:41:13
回答 1查看 742关注 0票数 1

我读过类似的问题,他们似乎不太适合我的问题,或者他们在不同的环境中。

我在MS-Access 2016工作。

我有一个客户投诉报告,其中有字段:年,月,计数(投诉#),complaint_desc。(投诉编号是我们分配给表格中输入的每个投诉的文字ID号)

我将报告按年份和月份分组,然后按complaint_desc分组,并对每个desc进行投诉数量计数,然后对投诉数量进行计数,将该月的投诉总数加起来,并将其放在月份页脚中,结果如下所示:

代码语言:javascript
复制
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#)对投诉描述组中的记录进行排序,使其看起来如下所示:

代码语言:javascript
复制
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#组标题,但它搞乱了月份页脚中的总计数,还拆分了投诉描述,从而违背了最初的目的……

我真的认为这个变化不会是什么大问题,但我现在已经有一段时间没有解决方案了。我也读过类似的问题,并试着按照例子来做,但它们并没有得到我想要的结果。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-12 01:07:38

我想通了!感谢@UnhandledException,他让我想到了正确的方向。

下面是我所做的:报告所基于的原始查询包含以下内容:

代码语言:javascript
复制
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函数来显示我想要的结果,除了我提到的那个问题。

我根据该查询进行了另一个查询:

代码语言:javascript
复制
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

我希望这对其他人有所帮助,并再次感谢为我指明了正确方向的未处理异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60637443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档