我有一份报告,跟踪某些项目在数据库中的保存时间,并通过在一系列年龄范围(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/