
以前別サイトで質問をさせていただきましたが
解決が出来なかったため、質問させていただきます。
ACCESSでのデータ抽出の質問です。
下記のような構造のテーブルがあり、そこから日付別の時間帯毎の個数を集計したいと考えています。
ここで日を跨ぐ場合の集計方法が分からずに困っています。
考え方をしては「9:00~翌3:00」を1日として「0:00~3:00」の時間帯のデータ数は
前日の日付の欄に表示させたいです。
■履歴テーブル
・日付(日付/時刻型)
・項目(短いテキスト)
■時間帯
・時間帯_1…9:00~12:00
・時間帯_2…12:00~17:00
・時間帯_3…17:00~22:00
・時間帯_4…22:00~3:00
■取得したい結果
日付 | 項目 |時間帯_1|時間帯_2|時間帯_3|時間帯_4|
----------------------------
2020/01/01|販売| 30 | 20 | 10 | 10 |
2020/01/02|販売| 10 | 10 | 10 | 10 |
2020/01/02|買取| 10 | 10 | 10 | 10 |
2020/01/03|販売| 20 | 30 | 40 | 50 |
2020/01/03|買取| 10 | 10 | 10 | 10 |
・
・
・
別サイトで教えていただいたヒントを参考に
select 日付, 項目,
sum( iif(TIMEVALUE([日付])>=#09:00:00# and TIMEVALUE([日付])<=#12:00:00#, 1, 0) ) as [時間帯_1],
sum( iif(TIMEVALUE([日付])>=#12:00:00# and TIMEVALUE([日付])<=#17:00:00#, 1, 0) ) as [時間帯_2],
sum( iif(TIMEVALUE([日付])>=#17:00:00# and TIMEVALUE([日付])<=#22:00:00#, 1, 0) ) as [時間帯_3],
sum( iif(TIMEVALUE([日付])>=#22:00:00# or TIMEVALUE([日付])<=#03:00:00#, 1, 0) ) as [時間帯_4]
where [日付] between #2020/01/01# and #2020/01/31#
group by format([日付],"yyyy/mm/dd"), 項目
上記のように作成をしました。
ここから「0:00~3:00」の時間帯のデータ数は前日の日付の欄に表示させるため
group by の部分を
group by format(iif(TIMEVALUE([日付])<=#5:00:00#,dateadd("d",-1.[日付]),[日付]),''yyyy/mm/dd)
という風に変更しましたが、構文エラーとなります。
どのようにSQLを書けば、思っているようなデータを作ることが出来るでしょうか。
ご教授よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
>group by format(iif(TIMEVALUE([日付])<=#5:00:00#,dateadd("d",-1.[日付]),[日付]),''yyyy/mm/dd)
group by format(iif(TIMEVALUE([日付])<=#5:00:00#,dateadd("d",-1,[日付]),[日付]),''yyyy/mm/dd)
DateAddでの引数の区切りがカンマではなくピリオドになってたから?(未検証)
でも『5時以下』ってどう言う事なのかちょっと疑問。
回答ありがとうございました。
かなり初歩的なミスで申し訳ありませんでした。
カンマとピリオド。
時間の打ち間違い…
次からは自分で気付けるようにします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- Excel(エクセル) 【 Excel 】映画を見る時間を分割して見るのに、Excel で目安を付けたいのです。 2 2022/10/20 19:16
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Excel(エクセル) 【Excel関数、count系】どなたか教示下さると助かります。 Excelでシフトを管理しており、 2 2022/07/09 06:34
- Visual Basic(VBA) VBAで時間(00:00形式)を積算(足し算)したい 1 2022/11/15 17:04
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 09:24
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESS、時間ごとの集計の仕方は?
その他(データベース)
-
ACCESSの時間帯の抽出について
その他(Microsoft Office)
-
アクセス クエリ 時間の合計
Access(アクセス)
-
-
4
時間の足し算
その他(データベース)
-
5
Accessの数値から時間に変換する時点で困っています。
その他(データベース)
-
6
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
7
ACCESSの時刻の引き算
Access(アクセス)
-
8
[MS Access]クエリで変換 hhmm(数値型)⇒hh:mm(日付/時刻型)
その他(Microsoft Office)
-
9
ACCESSの24時間以上の表示について
その他(Microsoft Office)
-
10
ACCESSで今日までの勤務時間の合計を表示させたい
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロボタンを押すと、ファイ...
-
「24日の0時」って・・・
-
「時間」、「期日」、「日付」...
-
日付の大小の表現
-
スクリーンショットで撮影する...
-
差し込み印刷に当日の日付が入...
-
携帯電話の履歴の修正
-
EXCEL97 日付の自動計算のさせかた
-
DATEのランプ表示は何を表して...
-
EXCELで日付を****年上期、****...
-
履歴書の日付間違いで落ちますか。
-
エクセルで日付別にシートを分...
-
エクセルで6ヵ月後を自動入力で...
-
Mozilla Thunderbird で日付が...
-
回覧板の日付について質問です...
-
エクセル マクロ 名前を付けて...
-
Word365ですが、今日の日付と明...
-
VBAについての質問です。日...
-
ACCESSで日付を指定すると、そ...
-
エクセルオートフィルターの一...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロボタンを押すと、ファイ...
-
「24日の0時」って・・・
-
回覧板の日付について質問です...
-
日付の大小の表現
-
差し込み印刷に当日の日付が入...
-
「時間」、「期日」、「日付」...
-
エクセル マクロ 名前を付けて...
-
エクセルで日付別にシートを分...
-
EXCELで日付を****年上期、****...
-
履歴書の日付間違いで落ちますか。
-
Excelについて
-
フォームの値をクエリーに反映...
-
エクセルで6ヵ月後を自動入力で...
-
会社や役所などに提出する書類...
-
日付以外のデータを抽出したい...
-
ACCESSで日付ごとに自動連番(...
-
エクセルで日付け表示で、明治...
-
Excelで1週間毎の集計(今週と...
-
Excelでヘッダに前日の日付を表...
-
2つの日付の中間の日付 エク...
おすすめ情報