
以前別サイトで質問をさせていただきましたが
解決が出来なかったため、質問させていただきます。
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESS、時間ごとの集計の仕方は?
その他(データベース)
-
ACCESSの時間帯の抽出について
その他(Microsoft Office)
-
アクセス クエリ 時間の合計
Access(アクセス)
-
-
4
Accessの数値から時間に変換する時点で困っています。
その他(データベース)
-
5
時間の足し算
その他(データベース)
-
6
ACCESSの時刻の引き算
Access(アクセス)
-
7
Accessの日付時刻型から日付、時刻カラムを作る
Access(アクセス)
-
8
ACCESSの24時間以上の表示について
その他(Microsoft Office)
-
9
ACCESSで今日までの勤務時間の合計を表示させたい
その他(Microsoft Office)
-
10
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロボタンを押すと、ファイ...
-
日付の大小の表現
-
エクセル 日付順に並べてかえた...
-
「時間」、「期日」、「日付」...
-
Excel関数 基準日に一番近い指...
-
回覧板の日付について質問です...
-
差し込み印刷に当日の日付が入...
-
Excelについて
-
フォームの値をクエリーに反映...
-
エクセルで6ヵ月後を自動入力で...
-
「24日の0時」って・・・
-
会社や役所などに提出する書類...
-
Array関数のネスト
-
日付以外のデータを抽出したい...
-
EXCELで日付を****年上期、****...
-
ACCESSの一覧フォームで2つの日...
-
エクセル マクロ 名前を付けて...
-
ACCESS フォームで入力した日付...
-
2つの日付の中間の日付 エク...
-
履歴書の日付間違いで落ちますか。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロボタンを押すと、ファイ...
-
「24日の0時」って・・・
-
日付の大小の表現
-
差し込み印刷に当日の日付が入...
-
「時間」、「期日」、「日付」...
-
回覧板の日付について質問です...
-
エクセル マクロ 名前を付けて...
-
Excelについて
-
エクセルで日付別にシートを分...
-
EXCELで日付を****年上期、****...
-
会社や役所などに提出する書類...
-
履歴書の日付間違いで落ちますか。
-
エクセルで日付け表示で、明治...
-
スクリーンショットで撮影する...
-
フォームの値をクエリーに反映...
-
日付以外のデータを抽出したい...
-
2つの日付の中間の日付 エク...
-
Excelでヘッダに前日の日付を表...
-
ACCESSで日付ごとに自動連番(...
-
差込印刷 縦書きで和暦(漢数...
おすすめ情報