sql - 使查询 Count() 返回 0 而不是空

标签 sql ms-access syntax 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;

此查询效果很好,除非列中没有任何条目。不是返回计数 0,而是返回一个空值。

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

最佳答案

你可以返回

ISNULL(Count(......), 0)

一切都应该没问题 - 将在 MS SQL Server 中 - 但我刚刚看到您正在使用 Access。由于我对 Access 不够了解,我不确定这是否可行 - 您可以尝试一下吗?

好的 - 很高兴看到 Access 中有类似的东西(如果与 SQL Server 中的不完全相同)。

马克

关于sql - 使查询 Count() 返回 0 而不是空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1207740/

相关文章:

php - MySQL 数据库查询抛出错误,说我有语法错误。好像找不到他们?我相信它在查询的列部分

sql - 将任意 SQL SELECT TOP(x) 转换为 SELECT COUNT(*)?

mysql - 如何组合查询?

vba - 使用 XSLT 转换 XML

mysql - mysql 中的正则表达式 - 查找包含所有关键字(AND 运算符)的字符串

regex - 为什么Visual Studio使用如此奇怪的正则表达式语法

php - mysql 创建一个带有有序子菜单的菜单

c# - 来自存储过程的模式

.net - 在 ASP.Net 中设计网站 - 用户登录设计和注意事项

c# - 此方法按钮C#中的语法错误?