Make a query Count() return 0 instead of empty

calendar_today Asked Jul 30, 2009
thumb_up 9 upvotes
history Updated April 16, 2026

Question posted 2009 · +3 upvotes

I have a report that tracks how long certain items have been in the database, and does so by tracking it over a series of age ranges (20-44, 45-60, 61-90, 91-180, 180+). I have the following query as the data source of the report:

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;

This query works great, except if there aren’t any entries a column. Instead of returning a count of 0, an empty value is returned.

How do I get Count() to return a 0 instead of empty?

Accepted answer +9 upvotes

You can return

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

and all should be fine – would be in MS SQL Server – but I just saw you’re using Access. Since I don’t know Access enough, I’m not sure this will work – can you try it?

OK – glad to see there’s something similar in Access (if not exactly the same as in SQL Server).

Marc

Top ms-access Q&A (6)

+9 upvotes ranks this answer #22 out of 55 ms-access solutions on this site .