创建一个查询Count()返回0而不是空

And*_*lli 3 sql syntax ms-access ms-access-2007

我有一个报告跟踪某些项目在数据库中的持续时间,并通过一系列年龄范围(20-44,45-60,61-90,91-180,180 +)跟踪它.我有以下查询作为报告的数据源:

SELECT DISTINCT Source.ItemName, 
Count(SELECT Source.DateAdded FROM Source WHERE Int(Date()-Source.DateAdded) > 20) AS Total, 
Count(SELECT Source.DateAdded FROM Source WHERE Int(Date()-Source.DateAdded) BETWEEN 20 AND 44) AS BTWN_20_44, 
Count(SELECT Source.DateAdded FROM Source WHERE Int(Date()-Source.DateAdded) BETWEEN 45 AND 60) AS BTWN_45_60, 
Count(SELECT Source.DateAdded FROM Source WHERE Int(Date()-Source.DateAdded) BETWEEN 61 AND 90) AS BTWN_61_90, 
Count(SELECT Source.DateAdded FROM Source WHERE Int(Date()-Source.DateAdded) BETWEEN 91 AND 180) AS BTWN_91_180, 
Count(SELECT Source.DateAdded FROM Source WHERE Int(Date()-Source.DateAdded) > 180) AS GT_180
FROM Source
GROUP BY Source.ItemName;
Run Code Online (Sandbox Code Playgroud)

此查询很有效,除非列中没有任何条目.而不是返回0的计数,返回空值.

如何让Count()返回0而不是空?

mar*_*c_s 9

你可以回来

ISNULL(Count(......), 0)
Run Code Online (Sandbox Code Playgroud)

一切都应该没问题 - 将在MS SQL Server中 - 但我刚看到你正在使用Access.由于我不太了解Access,我不确定这是否有效 - 你能试试吗?

好的 - 很高兴看到Access中有类似的内容(如果与SQL Server中的内容完全不同).