我正在使用一个存储各种状态类型的时间戳的表,我希望它可以旋转以更清楚地了解每个员工的实际“忙碌”时间......(这样我就可以运行工作负载/统计数据)
有几个警告..
- 员工可能会错误地将自己分配两次(参见示例数据中 EMP1 的第 5 行),我希望枢轴使用最早的时间 
- 员工可以将自己设置为 FRO 或 FRV(两者都是对新任务免费的变体),因此无论员工是 FRO 还是 FRV,它都应在 FREE 列中显示两种状态类型中的任何一种 
状态类型:
- ST = 开始/分配
- IP = 进行中的工作
- FRV = 车内免费
- FRO = 在办公室免费
状态表的样本数据:
 DateTime              emp      status
 3/26/2017 14:20:30    EMP1      ST
 3/26/2017 14:21:16    EMP1      FRO
 3/26/2017 14:26:11    EMP1      ST
 3/26/2017 14:26:42    EMP1      IP
 3/26/2017 14:26:45    EMP1      IP
 3/26/2017 14:28:35    EMP1      FRO
 3/26/2017 14:21:15    EMP2      ST
 3/26/2017 14:22:35    EMP2      IP
 3/26/2017 14:55:53    EMP2      FRV
 3/26/2017 14:20:48    EMP3      ST
 3/26/2017 14:23:49    EMP3      FRV
转换后的预期结果如下所示:
(ST = 开始,IP = 正在进行中,FREE = 不忙)
emp     ST                      IP                     FREE        
EMP1    3/26/2017 14:20:30      null                   3/26/2017 14:21:16
EMP1    3/26/2017 14:26:11      3/26/2017 14:26:42     3/26/2017 14:28:35
EMP2    3/26/2017 14:21:15      3/26/2017 14:22:35     3/26/2017 14:55:53
EMP3    3/26/2017 14:20:48      null                   3/26/2017 14:23:49
带有样本数据的测试表。
CREATE TABLE test (
      [DateTime] [datetime] NULL,
      [emp] [varchar](6) NOT NULL,
      [status] [varchar](6) NOT NULL
      )
INSERT INTO test values 
('2017-03-26 14:20:30.000', 'EMP1', 'ST'),
('2017-03-26 14:21:16.000', 'EMP1', 'FRO'),
('2017-03-26 14:26:11.000', 'EMP1', 'ST'),
('2017-03-26 14:26:42.000', 'EMP1', 'IP'),
('2017-03-26 14:26:45.000', 'EMP1', 'IP'),
('2017-03-26 14:28:35.000', 'EMP1', 'FRO'),
('2017-03-26 14:21:15.000', 'EMP2', 'ST'),
('2017-03-26 14:22:35.000', 'EMP2', 'IP'),
('2017-03-26 14:55:53.000', 'EMP2', 'FRV'),
('2017-03-26 14:20:48.000', 'EMP3', 'ST'),
('2017-03-26 14:23:49.000', 'EMP3', 'FRV')
非常感谢任何帮助,如果请求太模糊,很乐意进一步解释......
谢谢