使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
> クエリ結果の理想は「時刻」、「人数」のフィールドがあるレコードを> 例えば9時から18時まで1時間刻みで作りたいのです。
- 以下のような構造のテーブル(以下[作業時間帯テーブル])を新たに定義する。
- [作業時間帯テーブル]に次のようなレコードを追加する。
- 次のような集計クエリを作成する。
( SQL ビュー)
SELECT DateValue([作業記録テーブル].[開始時刻]) AS [作業日付],
[作業日付]+[作業時間帯テーブル].[時間帯開始時刻] AS [集計開始日時],
[作業日付]+[作業時間帯テーブル].[時間帯終了時刻] AS [集計終了日時],
Sum(IIf([作業記録テーブル].[終了時刻] <= [集計開始日時] OR [作業記録テーブル].[開始時刻] > [集計終了日時],0,1)) AS [作業人数]
FROM [作業記録テーブル],
[作業時間帯テーブル]
WHERE [作業記録テーブル].[開始時刻] Is Not Null
AND [作業記録テーブル].[終了時刻] Is Not Null
GROUP BY DateValue([作業記録テーブル].[開始時刻]),
[作業時間帯テーブル].[時間帯開始時刻],
[作業時間帯テーブル].[時間帯終了時刻]
ORDER BY DateValue([作業記録テーブル].[開始時刻]),
[作業時間帯テーブル].[時間帯開始時刻];