Sql 计数(字段)如果不',则返回0;不存在

Sql 计数(字段)如果不',则返回0;不存在,sql,ms-access,Sql,Ms Access,听起来是件简单的事,但我正在努力解决,可能是想得太多了 我基本上是想弄清楚一个类别,以及什么类别,即在标题字段中缺少一个作业值。。。我试图不经过迭代就完成它 因此,在本例中,它应该返回指示策略在标题字段中没有作业的内容 我最初的想法是只做一个COUNT(),如以下示例所示: SELECT category, COUNT(title) FROM grid_mgmt WHERE title = 'Job' GROUP BY category; 但后来很明显,这是行不通的,因为没有什么可以计算的 如

听起来是件简单的事,但我正在努力解决,可能是想得太多了

我基本上是想弄清楚一个
类别
,以及什么
类别
,即在
标题
字段中缺少一个
作业
值。。。我试图不经过迭代就完成它

因此,在本例中,它应该返回指示
策略
标题
字段中没有
作业
的内容

我最初的想法是只做一个
COUNT()
,如以下示例所示:

SELECT category, COUNT(title)
FROM grid_mgmt
WHERE title = 'Job'
GROUP BY category;
但后来很明显,这是行不通的,因为没有什么可以计算的

如果没有什么可计算的,您有没有关于如何返回0的建议,或者是在MS Access中使用SQL解决此问题的更好方法


您可以使用条件聚合:

SELECT category, SUM(IIF(title = "Job", 1, 0))
FROM grid_mgmt
GROUP BY category;
或者,如果您有一个单独的类别表,
左联接

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;

您可以使用条件聚合:

SELECT category, SUM(IIF(title = "Job", 1, 0))
FROM grid_mgmt
GROUP BY category;
或者,如果您有一个单独的类别表,
左联接

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;
Gordon回答了这个问题,但想进一步扩展,因为我最终修改了它,只返回那些
=0

SELECT category
FROM (
  SELECT category, SUM(IIF(title = "Job", 1, 0)) AS count
  FROM grid_mgmt
  GROUP BY category
)
WHERE count = 0;
以防万一,这对以后的其他人有帮助。

Gordon回答了这个问题,但想对它进行扩展,因为我最终修改了它,只返回那些
=0

SELECT category
FROM (
  SELECT category, SUM(IIF(title = "Job", 1, 0)) AS count
  FROM grid_mgmt
  GROUP BY category
)
WHERE count = 0;
以防万一这会帮助其他人