1
我有导演根据助理是否工作或者导演没有工作时支付佣工。SQL查询比较日期时间重叠并显示它们
有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.我希望简单的骨架分解就足够了。找到足够的查询来查看是否有人与时间冲突,但没有发现上述情况。
我不知道,有人可以在发生什么事了,但我不明白你的结果的日期。也许更少的记录,更多的细节会有所帮助。即使发布你现在尝试过的内容也不错。 (它有助于了解表和现有查询是如何建立起来的) –
帮助“属于”导演,你会如何知道这一点?如果没有这个,那么我想象一个导演的冲突与多于一个帮手的重叠时间。 –
您确实应该将该结束时间戳存储并用作_exclusive_上限。把它想象成“这个人不在这里的第一个瞬间”,而不是“这个人在这里的最后一刻”。 –