4

我正在为工作创建一个相当简单的 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

任何人都可以请帮忙吗?

4

2 回答 2

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
于 2012-07-14T23:18:28.193 回答
0

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

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

于 2012-07-14T23:03:34.137 回答