1

私は、次のような職業を持つ人々のリストを持っています。

Doctor Male
Teacher  Male
Principal Male
Nurse Female
Doctor Male

それらを職業別にグループ化するとき、私が持っているサブリストにない職業に対して Access が 0 を返すようにしたいと考えています。私が使用しているコードは次のとおりです。

SELECT Profession.Profession, Count(Profession.Profession) AS CountOfProfession
FROM People INNER JOIN Profession ON People.PeopleID = Profession.PeopleID
WHERE (((People.Sex)="Male"))
GROUP BY Profession.Profession;

男性が 2 人いるので医師の場合は 2 になり、男性看護師がいないため看護師の場合は 0 になります。これを行う方法を教えてください、ありがとう!

4

2 に答える 2

0

外部結合が必要です。テーブルの順序を入れ替えたので、次のleft joinとおりです。

SELECT Profession.Profession,
       sum(iif(people.sex = "Male", 1, 0)) AS CountOfProfession
FROM Profession LEFT JOIN
     ON People.PeopleID = Profession.PeopleID 
GROUP BY Profession.Profession;
于 2013-04-02T18:56:19.247 に答える
0

これは、外部結合を使用して、条件を から 句に移動することで実行できWHEREますON

SELECT Profession.Profession, 
       COUNT(People.PeopleID) AS CountOfProfession
FROM Profession 
  LEFT JOIN People 
    ON (  People.PeopleID = Profession.PeopleID
      AND People.Sex = 'Male' )
GROUP BY Profession.Profession ;
于 2013-04-02T19:15:00.690 に答える