2016-09-03 4 views
1

1つの表がその場所の調査を表し、もう1つの表がユーザーのインタビューした表を2つ持っています(調査ごとに多くの人がいます)。私は各地で特定の年齢以上の人数を表示しようとしていますが、一部の州では特定の年齢以上の人がいないため、結果の表には表示されません。私は、誰も特定の年齢を超えていない場合、カウントが0になるようにしたいと思います。 は私がしている:WHERE(マイクロソフトアクセス)で削除された行でカウント値を0に表示する方法

SELECT a.location, Count([b.age]) 
FROM Survey AS a LEFT JOIN person AS b ON a.surveyid = b.surveyid 
Where b.age >= 85 
GROUP BY a.location; 

私は、WHERE句がゼロカウント結果を排除しているものであることを認識し、私は私が必要となるサブクエリを把握することはできません。

答えて

2

代わりに条件付き集計を使用してください。これは、集計関数の引数に

SELECT s.location, 
     SUM(IIF(p.age >= 85, 1, 0)) 
FROM Survey AS s LEFT JOIN 
    person AS p 
    ON s.surveyid = p.surveyid 
GROUP BY s.location; 

をブール条件を移動することを意味することは、私は、テーブル名の省略形であることを表の別名を変更したことに気づきました。これにより、クエリの実行が容易になります。

+0

ありがとうございます! –

関連する問題