アプリ版:「スタンプのみでお礼する」機能のリリースについて

お分かりのかた、アドバイス、ご教示いただけますと幸いです。

以下のテーブルがあります。

---------------------------------------------------------------------------------
出勤時刻 退勤時刻
8:47:00  13:15:00
8:49:00  18:03:00
9:00:00  13:00:00
10:00:00  19:09:00
11:47:00  20:43:00

※日付/時刻型です。
---------------------------------------------------------------------------------

(1)クエリで時間ごとに纏めて表示しカウントしたい。
 ※条件として勤務時間は15分単位で、8:47出社は9:00、18:03退社は18:00となります。

出勤時刻 退勤時刻 人数
 9:00  13:00   1
 9:00  13:15   1
 9:00  18:00   1
10:00 19:00    1
12:00 20:30   1

(2)クエリで時間ごとにまとめた上で在籍人数をカウントしたい


時間帯 人数
 9:00  3
 9:15  3
 9:30  3
 9:45  3
10:00  4
10:15  4
10:30  4
10:45  4
11:00  4
11:15  4
11:30  4
11:45   4
12:00   5

(1)と(2)上記のようなことは可能でしょうか?

大変お手数をお掛けいたしますが、ご教示いただけますと幸いです。
どうぞ宜しくお願いいたします。

A 回答 (1件)

(1)


切り上げの一般式は
Int(数字/基数+0.99)*基数

切り下げの一般式は
Int(数字/基数)*基数

15分というのは数字にすると
1/24/60*15=1/96

したがって

修正出勤時刻: Int([出勤時刻]*96+0.99)/96

修正退勤時刻: Int([退勤時刻]*96)/96

人数は出す必要ないですね、それより誰の出退勤かという方が重要です

ID 修正出勤時刻 修正退勤時刻
1 9:00 13:15
2 9:00 18:00
3 9:00 13:00
4 10:00 19:00
5 12:00 20:30


(2)
時間帯テーブルは下のようなものにします

時間帯始 時間帯終
9:00:00  9:14:00
9:15:00  9:29:00
9:30:00  9:44:00
9:45:00  9:59:00
10:00:00 10:14:00
10:15:00 10:29:00
10:30:00 10:44:00
10:45:00 10:59:00
11:00:00 11:14:00
11:15:00 11:29:00
11:30:00 11:44:00
12:00:00 12:14:00

1のクエリと2のテーブルをクエリデザインビューに取り込み
結合はせずにおいて

ID、時間帯始、時間帯終を取り出し
時間帯始の抽出条件欄に
<=修正退勤時刻
時間帯終の抽出条件欄に
>=修正出勤時刻
上2つの表示のチェックを外し
時間帯始をもう1つ取り出してから集計クエリに変え

2つ目の時間帯始:グループ
ID:カウント
抽出条件を書いた時間帯始と終はWhere条件

参考のためにSQLは
SELECT 時間帯テーブル.時間帯始, Count(出退クエリ.ID) AS IDのカウント
FROM 時間帯テーブル, 出退クエリ
WHERE (((時間帯テーブル.時間帯始)<=[修正退勤時刻])
AND ((時間帯テーブル.時間帯終)>=[修正出勤時刻]))
GROUP BY 時間帯テーブル.時間帯始;

結果
時間帯始 IDのカウント
9:00:00  3
9:15:00  3
9:30:00  3
9:45:00  3
10:00:00 4
10:15:00 4
10:30:00 4
10:45:00 4
11:00:00 4
11:15:00 4
11:30:00 4
11:45:00 4
12:00:00 5
12:15:00 5
12:30:00 5
12:45:00 5
    • good
    • 0
この回答へのお礼

CHRONOS_0さま
完璧です!非常に助かりました!!
ロジックまでご説明いただき、本当にありがとうございました!!

お礼日時:2006/11/29 11:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!