嗨我正在爲考勤管理系統創建一個RDLC報表。在我的報告中,我想總和WorkedHours
。計算時間總和
正是我想要這個輸出
EmployeeId EmployeeName WorkedHours
1 ABC 04:00:25
2 XYZ 07:23:01
3 PQR 11:02:15
,所以我想在RDLC報告末尾顯示所有總有3名員工。
喜歡Total:22時二十五分41秒
嗨我正在爲考勤管理系統創建一個RDLC報表。在我的報告中,我想總和WorkedHours
。計算時間總和
正是我想要這個輸出
EmployeeId EmployeeName WorkedHours
1 ABC 04:00:25
2 XYZ 07:23:01
3 PQR 11:02:15
,所以我想在RDLC報告末尾顯示所有總有3名員工。
喜歡Total:22時二十五分41秒
試試這個
select EmpId,In_duration,out_duration,
datediff(mi,in_duration,out_duration) as Diff_mins
from table
中DateDiff的第一個參數是MI(分鐘)。如果您在文檔中查找dateDiff,則會看到其他選項。下面的例子顯示了以小時,分鐘和秒爲單位的差異。
select
LTRIM(STR(DATEDIFF(mi,in_duration,out_duration) /60))+':'+
LTRIM(STR(DATEDIFF(mi,in_duration,out_duration) %60))+':'+
LTRIM(STR(DATEDIFF(ss,in_duration,out_duration) -
(DATEDIFF(ss,in_duration,out_duration)/60)*60))
as diff
declare @T table
(
EmployeeId int,
EmployeeName varchar(10),
WorkedHours varchar(8)
)
insert into @T
select 1, 'ABC', '04:00:02' union all
select 2, 'XYZ', '07:23:01' union all
select 3, 'PQR', '11:02:15'
select right(100+T2.hh, 2)+':'+right(100+T2.mm, 2)+':'+right(100+T2.ss, 2) as TotalHours
from (
select dateadd(second, sum(datediff(second, 0, cast(WorkedHours as datetime))), 0) as WorkedSum
from @T
) as T1
cross apply (select datediff(hour, 0, T1.WorkedSum) as hh,
datepart(minute, T1.WorkedSum) as mm,
datepart(second, T1.WorkedSum) as ss) as T2
datediff
來計算小時數datepart
分鐘和秒right(100+T...)
在值之前添加0
如果有必要。cross apply ...
部分沒有必要。我補充說爲了使代碼更清晰。如果您願意,可以直接在字段列表中使用cross apply
中的表達式。
我該如何做RDLC報告中totalworkedhour的總和? totalworkedhour類型是varchar..totalworkedhour就像是04:13:00 .. – forum 2011-12-23 09:19:28
請提供有關您的數據庫架構及其中包含的數據的更多信息。 – 2011-12-21 11:37:43
請顯示您當前的sql。 – Zohaib 2011-12-21 11:38:36
以表格的形式顯示! – 2011-12-21 11:43:45