如何解决百分比列未显示在访问列表框中
我在报表上有一个列表框,该列表框有效地汇总了另一个表,并按一小段原因进行了分组。我有一个原因列,每个原因发生的次数列。我想为这些原因所占的百分比创建一列,但此列未显示-而且它为上一列(按原因计数)提供了错误的数字。
在编辑之前,我的代码(运行良好)是;
SELECT Reasons.Reason,Count([Master Data].ID) AS [Count]
FROM Reasons INNER JOIN [Master Data] ON Reasons.ID = [Master Data].[Lateness Reason]
GROUP BY Reasons.Reason;
我将其编辑为;
SELECT Reasons.Reason,Count([Master Data].ID) AS [Count],Format(Count([Master Data].ID)/Count(AllData.ID),'\P') AS Percentage
FROM [Master Data] AS AllData,Reasons INNER JOIN [Master Data] ON Reasons.ID = [Master Data].[Lateness Reason]
GROUP BY Reasons.Reason;
但是如上所述,第三列没有显示,并且Count
列中的数字现在也是错误的。
有人可以解释这是为什么吗,请问我应该怎么做?
编辑:尽管我不明白为什么会这样,但我已经计算出“计数”列中显示的错误数字实际上是乘以Count(AllData.ID)
的正确数字。
Correct/desired | Actual Output
value for "Count" | Value
___________________|___________________
10 75500
4 30200
1 7550
20 151000
3 22650
7 52850
解决方法
尝试使用正确的格式语法:
Format(Count([Master Data].ID)/Count(AllData.ID),'Percent') AS Percentage
您可能必须使用子查询来获得表中具有最小连接记录数([主数据]?)的不重复计数。
编辑:
如果您的第一个解决方案似乎很慢,请尝试以下操作:
SELECT
ID,Reason,T.ReasonCount / (SELECT Count(*) FROM [Master Data])
FROM
Reasons
INNER JOIN
(SELECT [Lateness Reason],Count(*) AS [ReasonCount]
FROM [Master Data]
GROUP BY [Lateness Reason]) AS T
ON
T.[Lateness Reason] = Reasons.ID
GROUP BY
ID,T.ReasonCount
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。