Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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 Microsoft Access计数,如果_Sql_Ms Access - Fatal编程技术网

Sql Microsoft Access计数,如果

Sql Microsoft Access计数,如果,sql,ms-access,Sql,Ms Access,我有一个access表,其中有几列是从ms access表单填充的 我需要计算值为Y或N而不是NA的每列的总数 这是我的问题 SELECT Count(tableName.[ColumnName] ='y' ) AS MyTotal FROM tableName; 查询返回的是行的总数,而不仅仅是其中包含Y的行 有人能看出我做错了什么吗 提前感谢您将您的WHERE子句标准放错了位置。实际上,您需要列的计数,其中列等于某个值 试试这个: SELECT Count(YourColumn) AS

我有一个access表,其中有几列是从ms access表单填充的

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

这是我的问题

SELECT 
Count(tableName.[ColumnName] ='y' ) AS MyTotal
FROM tableName;
查询返回的是行的总数,而不仅仅是其中包含Y的行

有人能看出我做错了什么吗


提前感谢

您将您的
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
功能,我们只需将它们相加。

您将
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
功能,我们只需将它们相加。

@scragar Access不支持CASE语句。您的解决方案不正确。@scragar Access不支持CASE语句。您的解决方案不正确。