4

私は仕事のためにかなり単純なAccessデータベースを作成していますが、この1つのSQLステートメントに固執しています。

受話器とそれらが割り当てられているサイトIDを含むテーブルがあります。私がやりたいのは、テーブルをクエリしてNULL、1つの列とXサイトIDに割り当てられた受話器の数を表示する別の列のエンティティの数を取得することです。

エンティティの数はNULL非常に簡単に取得できますが、1つのステートメントで両方の結果を取得することは私を超えています。

これは私がこれまでに持っているものです:

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 に答える