Access 列表框中未显示百分比列
Percentage column not displaying in Access Listbox
我在一份报告中有一个列表框,它有效地总结了另一个 table,按简短的原因列表分组。我有一个列是原因,还有一个列是每个原因出现的次数。我想要一个列说明这些原因所占的百分比,但此列未显示 - 而且它给出了前一列(按原因计数)错误的数字。
在编辑之前,我的代码(运行良好)是;
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' 列中显示的错误数字实际上是正确数字乘以 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
并且您可能必须使用子查询来获取 table 中连接记录数最少的非重复计数([主数据]?)。
编辑:
如果你的第一个解决方案看起来很慢,试试这个:
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,
Reason,
T.ReasonCount
我在一份报告中有一个列表框,它有效地总结了另一个 table,按简短的原因列表分组。我有一个列是原因,还有一个列是每个原因出现的次数。我想要一个列说明这些原因所占的百分比,但此列未显示 - 而且它给出了前一列(按原因计数)错误的数字。
在编辑之前,我的代码(运行良好)是;
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' 列中显示的错误数字实际上是正确数字乘以 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
并且您可能必须使用子查询来获取 table 中连接记录数最少的非重复计数([主数据]?)。
编辑:
如果你的第一个解决方案看起来很慢,试试这个:
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,
Reason,
T.ReasonCount