Accessクエリで日付の種類数をカウントする方法とは?

このQ&Aのポイント
  • Accessクエリを使用して、日付の種類数をカウントする方法を知りたいです。
  • テーブルには日付と曜日が格納されており、曜日ごとに日付が重複しています。
  • どのようなクエリを書けば、曜日ごとの日付の種類数を出力することができるでしょうか?
回答を見る
  • ベストアンサー

【Accessクエリ】種類の数をカウントしたい

以下のようなテーブルがあります。 テーブル1 日付 曜日 2011/9/12 月 2011/9/12 月 2011/9/13 火 2011/9/13 火 2011/9/13 火 2011/9/14 水 2011/9/19 月 2011/9/19 月 2011/9/21 水 2011/9/21 水 以下のような結果を出力するクエリはどのように書けばいいでしょうか? 曜日 日付の種類のカウント 月 2 火 1 水 2

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8516/19359)
回答No.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.順序;

motch5311
質問者

お礼

ありがとうございます! 助かりました!

その他の回答 (1)

  • chie65535
  • ベストアンサー率43% (8516/19359)
回答No.1

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.順序;

関連するQ&A

  • 【Accessクエリ】期間中の曜日の数を数えたい

    以下のテーブルがあります。 テーブル1 開始日 終了日 2011/9/12 2011/11/15 ←可変情報 以下のような結果を出力するクエリは作れますでしょうか? 曜日 回数 日 9 月 10 火 10 水 9 木 9 金 9 土 9

  • Access@クエリで特殊なカウントについて

    Accessのクエリで次のような場合のカウント方法を教えて下さい。 1AA111 1AA112 1AB111 1AC111 1AC113 1AC114 上記のような列があり、この列から前3文字が同じものをカウントしたいのですがどうすれば良いでしょうか? 結果の例 1AA 2 1AB 1 1AC 3 Likeを使うのだろうと予想はできるのですが、うまくいかないので教えて下さい。 宜しくお願いします。

  • ACCESSで2種類に分類してカウントするクエリを作りたいのですが…

    1~29までの数字が書かれた29枚のカードから5枚を同時に引き、 記録していくデータベースを作成するとき、 1~29が何回出てきたかを以下の種類によってカウントしたいのですが… ・同じレコードの他の数字の上一桁(一の位、十の位)の数が  「単数(1つ)」か「複数(2つ以上)」かによって  別カウントとして集計していきたいのですが。 (記録テーブル[全て数値型]) 回数 1枚目 2枚目 3枚目 4枚目 5枚目 ------------------------------------------ (1)    1    2    3    4    10 (2)    1    2    3    10    11 (3)    1    10   11    12   20 (各番号テーブル) フィールド名「各番号」 レコード数=29 上記のような記録のとき 回数(1)は一の位が4個出現(1.2.3.4)なのでカウントは複数      十の位が1個出現(10)なのでカウントは単数 回数(2)は一の位が3個出現(1.2.3)なのでカウントは複数      十の位が2個出現(10.11)なのでカウントは複数 回数(3)は一の位が1個出現(1)なのでカウントは単数      十の位が3個出現(10.11.12)なのでカウントは複数      二十の位が1個出現(20)なのでカウントは単数 要約すると一の位と十の位と二十の位に分けて 同時に引いた5枚のうち それぞれの位が1つなのか複数なのかによって カウントを別に分けて集計したいのですが… ・作りたいもの (単数複数カウントクエリ) カード   単    複 ←単、複ごとに出た数をカウント ----------------------- 1      1      2 2      2 3      2 : 10      1      2 11            2 12            1 : 20      1 : 上記のようなクエリはどうやれば作れるのでしょうか? ご回答、よろしくお願いします

  • クエリでカウントしつつ、チェックボックスを

    クエリでカウントしつつ、チェックボックスを使えるように(更新できるように)したいです。 アクセス2003です。 テーブル1(主キーなし) 名前   退職(Yes/No型) 佐藤   No 田中   No 佐藤   No から下のクエリを作りました。 SELECT テーブル1.名前, Count(テーブル1.名前) AS 名前のカウント, テーブル1.退職 FROM テーブル1 GROUP BY テーブル1.名前, テーブル1.退職; 結果、 名前 名前のカウント 退職 佐藤   2        No 田中   1        No となりますが、退職フィールドにチェックを入れることは出来なくなってしまいます。 カウントしつつ、更新可能なクエリにしたいのですが不可能でしょうか? 最終的には、このクエリ1をレコードソースとしてフォームに表示させたいです。 ご教示よろしくお願い致します。

  • クエリのフィールドで数字をカウントアップ

    目標は、以下のようなクエリ表示結果を出したいです。 受注No     枝番 ---------------------- 012-345-6789   2 012-345-6789-A1  2 012-345-6789-A1 3 ※クエリ抽出時にテーブル(T_受注No)の「受注No」と「枝番(最初は1)」を見にいき、同一の校正承認Noが増えるごとに「枝番」の+1カウントアップ。 ※同一校正承認Noがあった場合、+1カウントアップ。 現状は、以下のようなクエリ表示結果です。 受注No     枝番 ---------------------- 012-345-6789   2 012-345-6789-A1  2 ※クエリのフィールドは、枝番: Max(([T_受注No]![枝番])+1)としています。 お手数ですが、やり方、ヒントなどいただけませんか? よろしくお願いいたします。

  • access・カウント結果がゼロでも、「0」を表示させるには?

    クエリーでカウントをしたときに、カウント結果がゼロの場合でも「0」と表示させたいのですが、良い方法は、ありませんでしょうか。

  • ACCESS クエリで、グループ化したものをカウントしたい

    SQLでなくクエリで、グループ化したものをカウントしたいのですが、クエリを2個作ればよいのはわかるのですが、これを1つのクエリで作るのは可能でしょうか? 現状: クエリ1 グループ化 クエリ2 クエリ1の結果をカウント あまりにクエリを作り過ぎる為、今後の向上の為にと思い、質問します。 よろしくお願いします。

  • ACCESS クエリ(カウント0のレコードも表示させたい)

    すみません。クエリについて教えて下さい。 <生徒テーブル> 生徒ID・氏名 <出席テーブル> 生徒ID・日付 上記2のテーブルから、クエリで下記の情報を取り出したいのです。 <出席日数> 氏名・出席日数 <出席テーブル>には、1レコードもない生徒がいます。 この生徒は<出席日数>の出席日数を0として表示したいんです。 カウントを使って計算したところ、<出席テーブル>に1レコードもない生徒は表示できません。 説明がわかり難くて申し訳ないです。 どうぞ教えてください。

  • ACCESSで集計カウント0件の場合1と入力される

    再度質問箱に投稿します!Access2000で顧客管理をしているのですが毎日入力している顧客データーの顧客カルテNOからクエリの集計クエリで 一日の人数をカウントしているのですが、来店客が0人の時は0と入力しても1とカウントしてしまいます これを0人とカウントしないと集計結果が間違えてしまいます、どの様にすれば来店客が0人の時集計クエリで0とされるでしょうか? こんな感じです 顧客来店テーブル No カルテNO 日付 名前 etc.....でカルテNOはテキスト型で日付は日付/時刻型です 顧客来店テーブルから顧客来店日の日付別売上集計クエリに日付とカルテNOのフィールドを作って 日付をグループ化してカルテNOをカウントしています 顧客来店日の日付別売上集計クエリ  日付    カルテNO グループ化  カウント 顧客来店テーブルのカルテNOを0と入力すると 顧客来店日の日付別売上集計クエリのカルテNOのカウントで集計結果が0ではなく1と返されるのです、 前回お回答をしてもらった方法で 集計 Where条件 抽出条件 <>"0"にすると日付が無くなってしまいます これですと月の集計をした時に営業日数などが間違ってしまいます、 どの様にすればいいか解らないです、宜しくお願いします

  • アクセス クエリによる合計・平均値の表示方法

    アクセス クエリによる合計・平均値の表示方法についてご質問いたします。 まったくの初心者ですので、宜しくお願いいたします。 各テーブルから任意の期間をクエリを利用して表示させた時に、その期間の合計・平均値を 表示したいと考えております。 現在作成したクエリでは、任意期間のすべてのデータが表示されてしまいます。 (現状のクエリ=1月10日~11日) 種別    日付      曜日   店名   人数A   人数B   人数C ドリンク  2012/01/10  火    A店     10     10     40 ドリンク  2012/01/11  水    A店     10     10     40 ドリンク  2012/01/10  火    B店     15     15     30 ドリンク  2012/01/11  水    B店     15     15     30 (表示させたいクエリ=1月10日~11日平均) 種別    日付                曜日   店名   人数A   人数B   人数C ドリンク  2012/01/10~2012/01/11  非表示    A店     10     10     40 ドリンク  2012/01/10~2012/01/11  非表示    B店     15     15     30 全体集計                                合計25  合計25  合計70 上手く伝わらないかもしれませんが、上記のように表示させたいと考えております。 是非とも皆様のアドバイスを頂きたいと思いますので、宜しくお願いいたします。     

専門家に質問してみよう