Sounds like a simple thing to do, but I’m struggling with it and probably over thinking it.
I’m basically trying to figure out if a category
, and what category
that is, that is missing a Job
value in the title
field… and I’m trying to do it without iteration.
So in this example, it should return something indicating that Strategy
doesn’t have a Job
in the title
field.
My initial though was to just do a COUNT()
like in the following example:
SELECT category, COUNT(title) FROM grid_mgmt WHERE title = 'Job' GROUP BY category;
But then that became apparent it wouldn’t work because there isn’t anything to count.
Any suggestions on how to return a 0 if there is nothing to count, or perhaps a better way of tackling this issue in MS Access with SQL?
Advertisement
Answer
You can use conditional aggregation:
SELECT category, SUM(IIF(title = "Job", 1, 0)) FROM grid_mgmt GROUP BY category;
Or if you have a separate category table, a LEFT JOIN
:
select c.category, count(gm.category) from category as c left join grid_mgmt as gm on gm.category = c.category and gm.title = "Job" group by c.category;