ディレクターが働いたときにヘルパーが働いたかどうかに基づいてヘルパーに支払うディレクターがいます。
次のように 2 つのビューがあります。
監督
Name TimeIn TimeOut
Bob 2012-07-17 07:00:00.000 2012-07-17 16:00:00.000
Sam 2012-07-17 10:00:00.000 2012-07-17 20:00:00.000
Beatly 2012-07-17 14:00:00.000 2012-07-17 23:00:00.000
Mac 2012-07-17 21:00:00.000 2012-07-18 07:00:00.000
ヘルパー
Name TimeIn TimeOut
Fred 2012-07-17 15:59:00.000 2012-07-18 00:19:00.000
その期間に誰が働いていたのかを突き止めることは、難しいことではありません。少なくとも、頭の中で問題を抱えているわけではありません。これは、どこで、何分、誰によって、これが分ごとに重複しているかを見つけることです。そして、それらを使用時間ごとにグループ化します。彼らは皆、時給を書記と分割するからです。したがって、理想的には次のような結果になります。
DirName HelperStart HelperEnd
Bob 2012-07-17 15:59:00.000 2012-07-17 16:00:00.000
Sam 2012-07-17 15:59:00.000 2012-07-17 16:00:00.000
Beatly 2012-07-17 15:59:00.000 2012-07-17 16:00:00.000
Sam 2012-07-17 16:01:00.000 2012-07-17 20:00:00.000
Beatly 2012-07-17 16:01:00.000 2012-07-17 20:00:00.000
Beatly 2012-07-17 20:01:00.000 2012-07-17 21:00:00.000
Beatly 2012-07-17 21:01:00.000 2012-07-17 23:00:00.000
Mac 2012-07-17 21:01:00.000 2012-07-17 23:00:00.000
Mac 2012-07-17 23:01:00.000 2012-07-18 00:19:00.000
SQL Server 2008 を使用しています。必要最小限の単純な内訳で十分だと思います。誰かが時間と競合しているかどうかを確認するのに十分なクエリが見つかりましたが、上記の内訳はありません。