dポイントプレゼントキャンペーン実施中!

県名テーブル
 北海道
 青森県
 ・・・
 沖縄県

求人テーブル
 北海道 2人
 岩手県 1人
 ・・・
 鹿児島県 2人

という場合に
 北海道 2人
 青森県 0人
 岩手県 1人
 ・・・
 鹿児島県 2人
 沖縄県 0人

のように、会員ゼロでも表示させるSQLを教えていただけないでしょうか。現在は、ゼロだと表示されません。
現在は下記(MSアクセスのクエリ)です。番号は並べ替え用です。
SELECT 求人.県名, Count(求人.県名) AS 合計, 県名.番号
FROM 県名 LEFT JOIN 求人 ON 県名.県名 = 求人.県名
WHERE (((求人.年月日)>Date()-182))
GROUP BY 求人.県名, 県名.番号
ORDER BY 県名.番号;

A 回答 (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 ですよね。
    • good
    • 0

#1回答者です。



「SQL Serverについては詳しくないのですが」は、
「MS-ACCESSについては詳しくないのですが」の誤りでした。

IIfは、MS-ACCESSの関数です。
    • good
    • 0

Nz(Count(求人.県名),0) AS 合計


でどうですか
    • good
    • 0

SELECT 県名, Sum(人数) AS 求人数合計



空値の例文はミス!
このように書いたつもりでしたが・・・
多少、年でボケております。訂正!
    • good
    • 0

SQL Serverについては詳しくないのですが、確かIIf関数というのがあるので、nullの場合、0を入れるようにすればいいのでは?



SELECT 求人.県名, Count(求人.県名) AS 合計, 県名.番号



SELECT 求人.県名, IIf(Count(求人.県名) is null,0,Count(求人.県名) ) AS 合計, 県名.番号
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!