Sql server 如何在SQL中的开放时间表中找到重复/重叠的时间和天数

Sql server 如何在SQL中的开放时间表中找到重复/重叠的时间和天数,sql-server,Sql Server,我有一张包含不同商店营业时间的桌子 ID ShopID OpeningTime ClosingTime DayID DayDescription 1 20010 09:00 17:00 1 Monday 2 20010 09:00 17:00 2 Tuesday 3 20010 09:00 17:00 3 Wednesday 4 20010 09:00 17:00 4 Thursday 5 20010

我有一张包含不同商店营业时间的桌子

ID  ShopID  OpeningTime ClosingTime DayID   DayDescription
1   20010   09:00   17:00   1   Monday
2   20010   09:00   17:00   2   Tuesday
3   20010   09:00   17:00   3   Wednesday
4   20010   09:00   17:00   4   Thursday
5   20010   09:00   17:00   5   Friday
6   20010   09:00   17:00   8   Weekday
7   30151   09:00   12:00   1   Monday
8   30151   13:00   17:00   1   Monday
9   30151   09:00   12:00   2   Tuesday
10  30151   13:00   17:00   2   Tuesday
11  30151   09:00   12:00   3   Wednesday
12  30151   13:00   17:00   3   Wednesday
13  30151   09:00   12:00   4   Thursday
14  30151   13:00   17:00   4   Thursday
15  30151   09:00   12:00   5   Friday
16  30151   13:00   17:00   5   Friday
17  30151   09:00   17:00   8   Weekday
18  40265   08:00   21:00   1   Monday
19  40265   08:00   21:00   2   Tuesday
20  40265   08:00   21:00   3   Wednesday
21  40265   08:00   21:00   4   Thursday
22  40265   08:00   17:00   5   Friday
23  40265   08:00   21:00   8   Weekday
24  50541   09:00   17:00   2   Tuesday
25  50541   09:00   17:00   3   Wednesday
26  50541   09:00   17:00   8   Weekday
27  65892   09:00   17:00   1   Monday
28  65892   09:00   17:00   2   Tuesday
29  65892   09:00   17:00   3   Wednesday
30  65892   09:00   17:00   4   Thursday
31  65892   09:00   17:00   5   Friday
这是桌子

我想使用sql查询获得以下结果:

星期一到星期五DayID 1、2、3、4、5的小时数相同,它们也与工作日DayID=8相同,例如:shopID 20010 周一至周五的时间相同,但与工作日不同,例如:shopid30151 周一到周五的时间不同,工作日也有价值,例如:shopid40265 不是所有的5天都开放星期二-星期五,但工作日有价值,例如:shopid50541 星期二至星期五同时开放5天,但没有工作日记录,例如:ShopID 65892 任何人都可以用SQL语句帮助获得公司结果吗? 我是否错过了任何异常情况


非常感谢您的帮助。

请以文本形式发布您的数据。您使用的是哪个SQL Server版本?我使用的是SQL Server 2014,太广泛了。实际上你有5个问题,这个问题太宽泛了。你试过什么吗?