1

さまざまなステータスタイプのタイムスタンプを保存するテーブルを使用していますが、ピボットして、各従業員の実際の「忙しい」時間をより明確に把握したい...(作業負荷/統計を実行できるようにするため)

いくつかの注意事項があります..

  • 従業員は進行中の自分自身を誤って 2 回割り当てることができます (サンプル データの EMP1 の行 5 を参照)。ピボットで最も早い時間を使用したい

  • 従業員は自分自身を FRO または FRV として設定できます (どちらも新しい割り当てに対して自由であることのバリエーションです)。そのため、従業員が FRO または FRV であるかどうかにかかわらず、FREE 列に 2 つのステータス タイプのいずれかを表示する必要があります。

ステータスの種類:

  • 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')

リクエストがあいまいすぎる場合は、さらに説明していただければ幸いです......

ありがとう

4

1 に答える 1