2017-03-08 64 views
1

我需要幫助的是查詢以獲得員工每週總時間。我目前不知道如何獲得此報告。員工每週工作時間

我現在的報告只是爲每個人的小時收到一份報告,而我希望能夠得到一個特定的員工每週總小時數,因爲「Shifttime」表是在分鐘,而不是小時數,所以我得到了錯誤的信息,而不是他們的總時間。

SELECT  FullName, 
      DateTimeStart as StartTime, 
      DateTimeStop as FinishTime, 
      FORMAT(ShiftTime /60.0, 'n2') AS HoursWorked, 
      EL.EmployeeKey 
FROM  dbo.Employee AS E 
INNER JOIN dbo.employeelog AS EL 
ON   E.EmployeeKey = EL.EmployeeKey 
ORDER BY FullName; 
+0

這裏是一個偉大的地方開始。 http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –

+1

「周」的定義是什麼?它是在星期天還是星期六或星期一開始?它是否在您的應用程序中修復或基於某些設置? – Sparrow

+0

嘿傢伙,本週將從薪水當天開始,因此週四將是本週的開始,週三將結束。對不起,沒有在那裏添加。 –

回答

1

您需要提供輸入日期範圍查詢

SELECT  FullName, 
      --DateTimeStart as StartTime, 
      --DateTimeStop as FinishTime, 
      --FORMAT(ShiftTime /60.0, 'n2') AS HoursWorked,    
      --EL.EmployeeKey 
      SUM (DATEDIFF(minute, DateTimeStart, DateTimeStop)/60.0) AS HoursWorked 
FROM  dbo.Employee AS E 
INNER JOIN dbo.employeelog AS EL 
ON   E.EmployeeKey = EL.EmployeeKey 
WHERE  DateTimeStart >= '2017-03-02' 
AND  DateTimeStart < '2017-03-09' 
GROUP BY FullName 
ORDER BY FullName; 
+0

非常感謝!如果我想讓休息時間達到分鐘或給予某人獎勵時間,那麼最好的方式是什麼? –

+0

@ N.Staatz,您需要提供更多信息以滿足您的要求。表格模式,樣品數據和預期結果請 – Squirrel