【发布时间】:2013-07-30 13:12:59
【问题描述】:
我正在尝试获取本周的以下输出 -
Full Name | Mon | Tue | Wed | Thu | Fri | Sat | Sun
Peter Smith | 09:00 - 12:00 | NULL | 08:30 - 13:00 | NULL | NULL | NULL | 10:00 - 12:13
Peter Smith | 13:00 - 17:00 | NULL | 14:30 - 16:00 | NULL | NULL | NULL | 13:00 - 17:14
Paul Stevens | 09:00 - 12:00 | NULL | 08:30 - 13:00 | NULL | NULL | NULL | 10:00 - 12:13
这是在日志中显示打卡,从表中提取 -
**ClockInLogs**
ID - INT
UserID - INT
ClockDateTimeIn - DateTime
ClockDateTimeOut - DateTime
Status - INT (ClockedIn/ClockedOut)
源数据 -
ID | UserID | ClockDateTimeIn | ClockDateTimeOut | Status
1 | 10000 | 2013-07-30 13:40:39.913 | 2013-07-30 13:42:20.113 | 0
2 | 10000 | 2013-07-30 14:13:10.947 | 2013-07-30 14:25:15.570 | 0
3 | 10001 | 2013-07-30 14:13:52.817 | 2013-07-30 14:25:19.063 | 0
全名是从名为 Users 的连接表中提取的。
任何想法如何获得所需的输出?我知道我需要做 PIVOT,但不知道如何在单元格中显示时间。
谢谢!
【问题讨论】:
-
源数据实际上是什么样的?
-
我已将源数据添加到问题中。谢谢
-
ClockDateTimeIn 和 ClockDateTimeOut 总是同一天吗?
-
是的,总是在同一天。如果用户忘记打卡,则会在每天晚上 23:30 运行一个脚本来自动打卡用户打卡。
标签: sql sql-server sql-server-2008 pivot pivot-table