Microsoft Access Count if

时间:2014-08-06 12:00:16

标签: sql ms-access

我有一个访问表,其中包含从ms访问表单填充的多个列。

我需要计算每个列的总数,其中值为Y或N而不是NA

这是我的查询

SELECT 
Count(tableName.[ColumnName] ='y' ) AS MyTotal
FROM tableName;

查询返回的总行数不仅仅是包含Y的行。

任何人都可以看到我做错了什么

提前致谢

1 个答案:

答案 0 :(得分:6)

您将WHERE条款标准置于错误的位置。实际上,您希望列COUNTWHERE列等于某个值。

试试这个:

SELECT Count(YourColumn) AS MyTotal
FROM YourTable
WHERE YourColumn='y'

我想如果您正在寻找其他解决方案,那么这也应该有效。

SELECT SUM(IIf(YourColumn = 'y', 1, 0)) AS MyTotal
FROM YourTable

IIf的作用是,对于列等于'y'的每个记录,值为1,对于不符合该条件的列,为0。然后,要复制COUNT功能,我们只需SUM