【发布时间】:2016-07-23 15:56:33
【问题描述】:
我正在为此苦苦挣扎!我的数据如下表所示,但会有多个用户。请注意,这不仅仅是开始/结束时间,其间还有许多日期。
+-------------------------+--------+---------------------------+
| Date | Name 2 | Access |
+-------------------------+--------+---------------------------+
| 2014-09-29 14:50:03.000 | User1 | Ground Floor Door 1 (In) |
+-------------------------+--------+---------------------------+
| 2014-09-30 08:42:33.000 | User1 | Ground Floor Door 2 (In) |
+-------------------------+--------+---------------------------+
| 2014-09-30 08:42:58.000 | User1 | 1st Floor Door 1 (In) |
+-------------------------+--------+---------------------------+
| 2014-09-30 12:31:54.000 | User1 | Ground Floor Door 1 (Out) |
+-------------------------+--------+---------------------------+
| 2014-09-30 13:05:43.000 | User1 | Ground Floor Door 1 (In) |
+-------------------------+--------+---------------------------+
| 2014-09-30 13:11:32.000 | User1 | Ground Floor Door 3 (Out) |
+-------------------------+--------+---------------------------+
| 2014-09-30 13:55:28.000 | User1 | Ground Floor Door 1 (In) |
+-------------------------+--------+---------------------------+
| 2014-09-30 13:55:36.000 | User1 | Ground Floor Door 2 (In) |
+-------------------------+--------+---------------------------+
| 2014-09-01 18:31:21.000 | User1 | Ground Floor Door 4 (Out) |
+-------------------------+--------+---------------------------+
| 2014-10-01 08:31:21.000 | User1 | Ground Floor Door 1 (In) |
+-------------------------+--------+---------------------------+
| 2014-10-01 08:31:41.000 | User1 | Ground Floor Door 2 (In) |
+-------------------------+--------+---------------------------+
| 2014-10-01 17:31:49.000 | User1 | Ground Floor Door 4 (Out) |
+-------------------------+--------+---------------------------+
| 2014-10-02 08:31:51.000 | User1 | Ground Floor Door 1 (In) |
+-------------------------+--------+---------------------------+
| 2014-10-02 18:41:49.000 | User1 | Ground Floor Door 3 (Out) |
+-------------------------+--------+---------------------------+
我需要获取一系列日期之间每一天的最小值和最大值。如果我能计算出午餐时间有多长(中午 12 点到下午 2 点之间的第一次和最后一次滑动之间的差异),那也很好,但在我开始第一部分工作之前并不重要。
到目前为止,我已经尝试了以下查询的各种版本,但没有任何乐趣。任何人都可以帮助我吗?我可以毫无问题地获取特定日期的最小值和最大值,只有当涉及到一个范围时它才会起作用。
select min(Date) as EntryTime, max(Date) as ExitTime
from table
where [Name 2] like '%User1%' and EventTime between '2014-09-30 12:00:00' and '2014-10-05 12:00:00'
group by cast(Date as datetime)
这并没有给出所需的结果集。我希望我的查询为我的表返回类似的内容:
+-------------------------+-------------------------+----------+------------+
| EntryTime | ExitTime | Username | Date |
+-------------------------+-------------------------+----------+------------+
| 2014-09-30 08:42:33.000 | 2014-09-01 18:31:21.000 | User1 | 2014-09-01 |
+-------------------------+-------------------------+----------+------------+
| 2014-10-01 08:31:21.000 | 2014-10-01 17:31:49.000 | User1 | 2014-10-01 |
+-------------------------+-------------------------+----------+------------+
| 2014-10-02 08:31:51.000 | 2014-10-02 18:41:49.000 | User1 | 2014-10-02 |
+-------------------------+-------------------------+----------+------------+
【问题讨论】:
-
这个查询的输出是什么,有什么问题?
-
我的查询为最小/最大列的每一行提供了两次相同的日期
-
您的查询中的属性与您的示例数据不匹配。
标签: sql sql-server