2016-10-20 163 views
0

我想構建一個查詢,顯示我的員工每天工作多少次。例如,我想表明,在一段時間內,吉姆共有12個星期六,3個星期一和1個星期四。我計劃通過從時鐘條目中提取週日期部分來完成此操作。我只是不知道如何構建它,以便有七個條件計數列。SQL計算每位員工每週工作的班次

在此先感謝

+0

[編輯]你的問題,並添加一些樣本數據和基於該數據的預期輸出。 [_Formatted_](http://stackoverflow.com/editing-help#code)**文本**,請[無屏幕截圖](http://meta.stackoverflow.com/questions/285551/why-may-i -not-upload-images-code-on-so-when-asking-question-285557#285557) –

+0

你嘗試過什麼嗎?爲你的問題添加一些例子。您可以將案例插入您的計數以進行條件計數,例如:sum(case when day_column ='wednesday'then 1 else 0 end) –

回答

0

製作了很多的假設:

  1. 「考勤卡」是你的表
  2. 僱員是你的員工
  3. 的標識符,每一個員工有1個記錄每天
  4. 員工工作日是姓名[時間戳]

select 
    EmployeeID, 
    count(case when datepart(weekday, [timestamp]) = 1 then 1 end) as [Sunday], 
    count(case when datepart(weekday, [timestamp]) = 2 then 1 end) as [Monday], 
    count(case when datepart(weekday, [timestamp]) = 3 then 1 end) as [Tuesday], 
    count(case when datepart(weekday, [timestamp]) = 4 then 1 end) as [Wednesday], 
    count(case when datepart(weekday, [timestamp]) = 5 then 1 end) as [Thursday], 
    count(case when datepart(weekday, [timestamp]) = 6 then 1 end) as [Friday], 
    count(case when datepart(weekday, [timestamp]) = 7 then 1 end) as [Saturday] 
from [TimeCard] 
group by EmployeeID 
+0

謝謝戴夫,您的回答指出我的方向是正確的。這一切都歸結爲伯爵(案例),我不太熟悉,現在將更多地瞭解。 再次感謝你,你的回答非常有幫助! –