如何计算小时数

问题描述 投票:-3回答:1

我正在使用sql server 2017.i我正在计算小时数(reg小时和加班时间),我在reg小时栏中获得所有小时数,如果正常小时数超过40小时,则必须加班加点....是这里的查询,我可以使用例如....在一个表我有empid,名字,reghou,othours。我从我的客户端获得了一个excel中不同列(如名称,小时等)的文件。当我得到那个excel文件时,所有小时都在小时列中。因此,如果我得到42.83的小时数,我想将其分为40小时至reg小时,将2.83分为其他小时。该表应如下所示

please check the image to know how i want the records as

sql tsql
1个回答
0
投票
DECLARE @EmployeeTimeSheet TABLE(EmployeeID INT, WorkedHours DECIMAL(18,2))
INSERT INTO @EmployeeTimeSheet
VALUES(1,8),
(1,8),
(1,8.5),
(2,8),
(2,8),
(1,8),
(3,8),
(1,8.5),
(2,8),
(3,8.5),
(1,8),
(1,8)

SELECT CASE WHEN SUM(WorkedHours) > 40 THEN 40 ELSE SUM(WorkedHours) END as Regular, 
CASE WHEN SUM(WorkedHours) > 40 THEN (SUM(WorkedHours) -40) ELSE 0 END as OverTime 
FROM @EmployeeTimeSheet
GROUP BY EmployeeID
© www.soinside.com 2019 - 2024. All rights reserved.