- 締切済み
グループ化した個別の件数の取得方法
VB2005 Accessで開発をしています 以下のようなテーブルがあります。 予約テーブル 日付 時間 名前 2007/12/25 10:00 鈴木 2007/12/25 10:00 青木 2007/12/25 11:00 田中 2007/12/25 11:00 佐藤 2007/12/25 11:00 加藤 2007/12/26 10:00 鈴木 2007/12/26 10:00 青木 このテーブルを日付と時間でグループ化した内訳の件数を取得するにはどのようにすればよいのでしょうか? 2007/12/25 10:00 2件 2007/12/25 11:00 3件 2007/12/26 10:00 2件 現在のコード SELECT 予約日,予約時間,count(*) FROM 予約クエリー WHERE 予約日 BETWEEN #2007/12/25# And #2007/12/26# group BY 予約日,予約時間 とやっていますが、うまくいきません。 ご教授お願いします
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- venzou
- ベストアンサー率71% (311/435)
確認させて下さい。 VBからADO(又はDAO)を使って、Accessのデータを開いていますか? テーブル構造は下記のような感じでしょうか? テーブル名 予約テーブル フィールド名 日付 (日付/時間型に日付のみ入力) 時間 (日付/時間型に時間のみ入力) 名前 (文字列型) ------------------------------------------------------------ 質問のSQL文では、「予約クエリー」「予約日」「予約時間」と なっていますが、これは別のクエリーですよね? このクエリーの内容は? ------------------------------------------------------------ 例えば、「予約クエリー」の内容が、下記であれば、 質問のSQL文で、問題なく集計されると思います。 SELECT 予約テーブル.日付 AS 予約日, 予約テーブル.時間 AS 予約時間 FROM 予約テーブル; SQL文は問題ないと思います。その他の部分に原因があるのでは? 補足: 強いて問題点を挙げれば、count(*)に別名を付けていない点。 名前が分からなくても、インデックス番号で参照出来ますが、 付けておく方が無難だと思います。 例: count(*) AS 件数 ------------------------------------------------------------ >とやっていますが、うまくいきません。 うまくいかないとは? もう少し具体的に説明をお願いします。 出来れば、該当部分のソースなど補足して頂ければ、 正確な回答が得られやすいと思いますよ。
- CHRONOS_0
- ベストアンサー率54% (457/838)
日付と時刻は一続きのものです 個別に比較したのでは正しい結果は得られません SELECT Max(日付) AS 日付の最大, Max(時間) AS 時間の最大, Count(*) AS カウント FROM 予約クエリー where 日付 Between #12/25/2007# And #12/26/2007# GROUP BY [日付]+[時間]
- tomo316
- ベストアンサー率35% (51/142)
SELECT 予約テーブル.日付, 予約テーブル.時間, Count(*) & "件" AS 件数 FROM 予約テーブル WHERE (((予約テーブル.日付) Between #12/25/2007# And #12/26/2007#)) GROUP BY 予約テーブル.日付, 予約テーブル.時間;