Microsoft Access Count if

Bar*_*lly 0 sql ms-access

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

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

这是我的查询

SELECT 
Count(tableName.[ColumnName] ='y' ) AS MyTotal
FROM tableName;
Run Code Online (Sandbox Code Playgroud)

查询返回的总行数不仅仅是带有Y的行.

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

提前致谢

Mar*_* C. 6

你的WHERE条款标准是错误的.真的,你想要一个COUNT列,WHERE列等于某个值.

试试这个:

SELECT Count(YourColumn) AS MyTotal
FROM YourTable
WHERE YourColumn='y'
Run Code Online (Sandbox Code Playgroud)

我想如果你正在寻找另一个解决方案,这也应该有效.

SELECT SUM(IIf(YourColumn = 'y', 1, 0)) AS MyTotal
FROM YourTable
Run Code Online (Sandbox Code Playgroud)

IIf它的作用是为列的每个记录等于'y'赋值为1,为不符合该条件的列赋值为0.然后为了复制COUNT功能,我们简单地完成SUM它们.