- ベストアンサー
SQL文(県名一覧・・)
県名テーブル 北海道 青森県 ・・・ 沖縄県 求人テーブル 北海道 2人 岩手県 1人 ・・・ 鹿児島県 2人 という場合に 北海道 2人 青森県 0人 岩手県 1人 ・・・ 鹿児島県 2人 沖縄県 0人 のように、会員ゼロでも表示させるSQLを教えていただけないでしょうか。現在は、ゼロだと表示されません。 現在は下記(MSアクセスのクエリ)です。番号は並べ替え用です。 SELECT 求人.県名, Count(求人.県名) AS 合計, 県名.番号 FROM 県名 LEFT JOIN 求人 ON 県名.県名 = 求人.県名 WHERE (((求人.年月日)>Date()-182)) GROUP BY 求人.県名, 県名.番号 ORDER BY 県名.番号;
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
<県名> ID__県名 1___北海道 2___沖縄 3___東京 普通は、このような設計で[ID]の値には法律で定められている都道府県番号を用いるでしょう。 <求人> ID__県名_ID__人数 1___1_______________2 2___2_______________0 当然に、求人テーブルには[県名]列なんて不要ですよね。 SELECT 県名, Sum(isnull(人数,0)) AS 求人数合計 FROM 県名 LEFT JOIN 求人 ON 県名.ID = 求人.県名_ID GROUP BY 県名 ORDER BY 県名; |県名___|求人数合計| |沖縄___|_____________0| |東京___|_______________| |北海道|_____________2| それはさておき、東京の集計が空値になるのを回避したいとの質問だと理解しました。 innull関数を使えば良いと思います。 SELECT 県名, Sum(isnull(人数,0)) AS 求人数合計 FROM 県名 LEFT JOIN 求人 ON 県名.ID = 求人.県名_ID GROUP BY 県名 ORDER BY 県名; |県名___|求人数合計| |沖縄___|_____________0| |東京___|_____________0| |北海道|_____________2| MSアクセスのクエリ????? SQL Server のフロントエンドは Access.adp ですよね。
その他の回答 (4)
- chukenkenkou
- ベストアンサー率43% (833/1926)
#1回答者です。 「SQL Serverについては詳しくないのですが」は、 「MS-ACCESSについては詳しくないのですが」の誤りでした。 IIfは、MS-ACCESSの関数です。
- CHRONOS_0
- ベストアンサー率54% (457/838)
Nz(Count(求人.県名),0) AS 合計 でどうですか
SELECT 県名, Sum(人数) AS 求人数合計 空値の例文はミス! このように書いたつもりでしたが・・・ 多少、年でボケております。訂正!
- chukenkenkou
- ベストアンサー率43% (833/1926)
SQL Serverについては詳しくないのですが、確かIIf関数というのがあるので、nullの場合、0を入れるようにすればいいのでは? SELECT 求人.県名, Count(求人.県名) AS 合計, 県名.番号 ↓ SELECT 求人.県名, IIf(Count(求人.県名) is null,0,Count(求人.県名) ) AS 合計, 県名.番号