Sql 百分比列未显示在Access列表框中
我在一份报告上有一个列表框,它有效地总结了另一个表,并按一个简短的原因列表进行了分组。我有一列说明原因,还有一列说明每个原因发生的次数。我想有一个列,这些原因所占的百分比是多少,但此列不显示-而且它给出了前一列按原因计数的错误数字 在编辑之前,我的代码工作得很好Sql 百分比列未显示在Access列表框中,sql,ms-access,number-formatting,Sql,Ms Access,Number Formatting,我在一份报告上有一个列表框,它有效地总结了另一个表,并按一个简短的原因列表进行了分组。我有一列说明原因,还有一列说明每个原因发生的次数。我想有一个列,这些原因所占的百分比是多少,但此列不显示-而且它给出了前一列按原因计数的错误数字 在编辑之前,我的代码工作得很好 SELECT Reasons.Reason, Count([Master Data].ID) AS [Count] FROM Reasons INNER JOIN [Master Data] ON Reasons.ID = [Maste
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;
但是如前所述,第三列没有显示,计数列中的数字现在也错了
有人能解释一下为什么会这样,我应该怎么做才能解决它吗
编辑:我已经计算出“计数”列中显示的错误数字实际上是正确的数字乘以CountAllData.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
您可能需要使用一个子查询来获取表中具有最小连接记录计数[主数据]的不同计数
编辑:
如果您的第一个解决方案看起来很慢,请尝试以下方法:
选择
身份证件
原因
T.ReasonCount/从[主数据]中选择Count*
从…起
理由
内连接
选择[迟到原因],将*计数为[原因计数]
来自[主数据]
按[迟到原因]分组为T
在…上
T.[迟到原因]=原因ID
分组
身份证件
原因
T.R.计数
谢谢你的回答,但我不明白子查询是什么意思?它需要应用于哪个表?为什么?你能给我举个例子吗?另外,如果这些信息有用的话,请看我刚才对我的问题所做的编辑。从[Master Data]作为AllData,Reasons创建了一个笛卡尔连接,将两个表的计数相乘。谢谢@Gustav。所以我可以不使用连接,只获取AllData表的计数吗?等等,我假设这是上面提到的子查询?是的,它被修复了!!非常感谢你们两位: