我有一个访问表,其中包含从ms访问表单填充的多个列。
我需要计算每个列的总数,其中值为Y或N而不是NA
这是我的查询
SELECT
Count(tableName.[ColumnName] ='y' ) AS MyTotal
FROM tableName;
查询返回的总行数不仅仅是包含Y的行。
任何人都可以看到我做错了什么
提前致谢
答案 0 :(得分:6)
您将WHERE
条款标准置于错误的位置。实际上,您希望列COUNT
,WHERE
列等于某个值。
试试这个:
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
。