Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 百分比列未显示在Access列表框中_Sql_Ms Access_Number Formatting - Fatal编程技术网

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表的计数吗?等等,我假设这是上面提到的子查询?是的,它被修复了!!非常感谢你们两位: