2017-06-19 29 views
0

我有數據顯示員工登錄時以及登出時的情況。我將他們登錄的時間稱爲「準備好」時間,並將他們註銷的時間稱爲「未就緒」時間。我想要做的是有一個連續的梯度時間表,顯示有多少人處於就緒狀態。計算在特定時間工作的人數

有關數據的一些注意事項:

  • 數據已經開始時間和結束時間。每條記錄對於員工和開始時間都是唯一的?
  • 我不幸發佈這個數據,因爲它不屬於我。

回答

1

比方說,你的數據是這樣的

employee start_time end_time 
E1 7/7/2017 10:03:10 AM 7/7/2017 18:03:10 AM 
E2 7/7/2017 10:10:10 AM 7/7/2017 18:03:10 AM 
E3 7/7/2017 10:13:10 AM 7/7/2017 18:03:10 AM 
E1 7/7/2017 11:03:10 AM 7/7/2017 19:03:10 AM 
E2 7/7/2017 10:30:10 AM 7/7/2017 18:03:10 AM 

在這種情況下,我會請按照下列步驟操作:

  • 檢查START_TIME & END_TIME列不在「時間戳」格式然後右鍵單擊它並轉到'更改數據類型'以選擇'日期&時間'
  • 創建參數Select_Report_DateTime。在參數窗口中選擇Data type ='Date & Time';顯示格式='自動';允許值='全部'
  • 右鍵單擊該參數並選擇'顯示參數控制'
  • 創建計算字段default_date_time#1/1/1900 12:00:00 AM#。如果它不是在「時間戳」的格式,然後右鍵單擊它,然後轉到「更改數據類型」選擇「日期&時間」
  • 創建計算字段Report_DateTime_formatted

IF [Select_Report_DateTime] == [default_date_time] then now() 
ELSE [Select_Report_DateTime] 
END 

  • 創建一個計算字段Users(inReadyState)

IF (([Report_DateTime_formatted] >= [start_time]) & 
    ([Report_DateTime_formatted] < [end_time])) THEN "Yes" 
ELSE "No" 
END 

  • 現在拖動在 '列' Users(inReadyState)CNT[employee]在 '行' 和 '商標' 爲酒吧。
  • 你可以很好地玩這個模型來得到o/p根據您的具體要求。

不要忘了讓我們知道,如果它幫助:)

+1

只是有點挑剔。在最後計算的字段中,您需要保留的是布爾條件。你根本不需要if/then/else。然後計算的字段有一個布爾數據類型。布爾是第一類數據類型。 –