2011-05-12 30 views
0

我想計算SumofWorkingHours如下所示,它基於empID。例如如果EmpID是1,那麼它會在每個Admincode中總結工作時間,並在EmpID存在的所有行中顯示總和。 請對此提出建議或查詢。計算sql server中工作時間的總和,並在每行中顯示EmpID

 
LoginName EmpID  Practice  AdminCode  WorkingHours SumofWorkingHours 
E1   1   Admin   IT   5.24   38.81 
E1   1   Admin   Finance  0.07   38.81 
E1   1   Admin   HR   33.50   38.81 
E2   2   Admin   Support  8.00   40.50 
E2   2   Admin   HR   32.50   40.50 
E3   3   Admin   Finance  5.50   45.08 
E3   3   Admin   Support  39.58   45.08 

此數據僅用於測試

+0

使用「通過EmpID組」。選擇「Emp1,sum(WorkingHours)」。在Emp1上加入您的表格。 – 2011-05-12 09:27:55

回答

0

看起來你只是想求和EMPID,像這樣:

select EmpId, sum(WorkingHours) 
from theTable 
group by EmpId 

要集成到一個更大的查詢,具體返回的結果集你在你的問題中顯示,你可以這樣做:

select t1.LoginName, t1.EmpID, t1.Practice, 
    t1.AdminCode, t1.WorkingHours, tot.SumofWorkingHours 
from theTable t1 
inner join (select EmpID, sum(WorkingHours) as SumofWorkingHours 
      from theTable 
      group by EmpId) tot 
on tot.EmpID = t1.EmpID 
+0

我試過上面的查詢,但沒有發生任何事情。其實我想計算上述例子的工作時間和顯示列的總和。當empid存在於下一行時,一位員工的一小時工作時間顯示。 – 2011-05-12 10:09:58

+0

@Dinesh:你什麼意思,'什麼都沒發生'?你有錯誤嗎?你使用了正確的表名嗎? – codeulike 2011-05-12 10:37:20

+0

表示顯示相同的工作時間,如5.24,0.07,33.50,8.00,32.50,5.50,39.58。它不會計算工作時間。我想以上面的格式顯示數據workinghours和sumofworkinghours和sumofworkinghour應顯示在關於EmpID的每一行上。 – 2011-05-12 10:55:17