访问SQL - 一个中的两个Count()语句?

Ste*_*ice 4 sql ms-access

我正在为工作创建一个相当简单的Access数据库,我仍然坚持这一个SQL语句:

我有一个表,其中包含手机和分配给它们的站点ID.我想要做的是查询表以给我NULL一列中的实体数量和另一列显示分配给X站点ID的手机数量.

我可以NULL很容易地得到实体的数量,但是在一个声明中得到两个结果都超出了我.

这是我到目前为止:

SELECT Handset_Type, COUNT(*) as "Number of null handsets"
FROM tbl_Handsets
WHERE Handset_Site_Id is Null
GROUP BY Handset_Type;
Run Code Online (Sandbox Code Playgroud)

所以现在我有null手机数,但现在我需要分配给X的手机数量.

下面的东西应该是输出:

HANDSET     ||| NULL |||   X
handset 1   |||   50 |||   5
handset 2   |||   20 |||  10
Run Code Online (Sandbox Code Playgroud)

有人可以请帮忙吗?

Zan*_*ien 5

您可以使用Access的IIF()功能有条件地聚合:

SELECT   handset_type,
         COUNT(IIF(handset_site_id IS NULL, 1, NULL)) AS nullcount,
         COUNT(IIF(handset_site_id = X, 1, NULL)) AS X
FROM     tbl_handsets
GROUP BY handset_type
Run Code Online (Sandbox Code Playgroud)