- ベストアンサー
Accessクエリで日付の種類数をカウントする方法とは?
- Accessクエリを使用して、日付の種類数をカウントする方法を知りたいです。
- テーブルには日付と曜日が格納されており、曜日ごとに日付が重複しています。
- どのようなクエリを書けば、曜日ごとの日付の種類数を出力することができるでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
因みに、以下のようにすると「無い曜日は0個」で出力可能です。 SELECT テーブル2.曜日, IIf(IsNull([SQL1].[曜日]),0,Count(*)) AS 日付の種類のカウント FROM (SELECT テーブル1.日付, テーブル1.曜日 FROM テーブル1 GROUP BY テーブル1.日付, テーブル1.曜日) AS SQL1 RIGHT JOIN テーブル2 ON SQL1.曜日 = テーブル2.曜日 GROUP BY SQL1.曜日, テーブル2.曜日, テーブル2.順序 ORDER BY テーブル2.順序;
その他の回答 (1)
- chie65536(@chie65535)
- ベストアンサー率44% (8741/19839)
SELECT 曜日, Count(*) FROM (SELECT テーブル1.日付, テーブル1.曜日 FROM テーブル1 GROUP BY テーブル1.日付, テーブル1.曜日) GROUP BY 曜日; なお、結果を「月、火、水」の順に並べたいなら、もう一工夫が必要。 曜日を「昇順」にしても「辞書順」になるので、残念ながら「火、月、水」の順になってしまう。 曜日を正しい順にしたい場合は「テーブル2」として以下のようなテーブルを作成して 曜日 順序 -------- 日 1 月 2 火 3 水 4 木 5 金 6 土 7 以下のようなSQL文で「順序に従って昇順で並べ直し」しましょう。 SELECT SQL1.曜日, Count(*) FROM (SELECT テーブル1.日付, テーブル1.曜日 FROM テーブル1 GROUP BY テーブル1.日付, テーブル1.曜日) AS SQL1 INNER JOIN テーブル2 ON SQL1.曜日 = テーブル2.曜日 GROUP BY SQL1.曜日, テーブル2.順序 ORDER BY テーブル2.順序;
お礼
ありがとうございます! 助かりました!