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

时间:2012-07-14 22:55:36

标签: 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;

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

下面的内容应该是输出:

HANDSET     ||| NULL |||   X
handset 1   |||   50 |||   5
handset 2   |||   20 |||  10

有人可以请帮忙吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

不确定Access,但这是我在MySQL中通常做的事情

SELECT SUM(IF(handset_site_id IS NULL, 1, 0)) AS number_of_null_handsets ...