我必须计算出各种不同表格的总工作天数。我有一张时间表和时间表行表。时间表行表格包含以下字段:
Id; TimesheetId; TimesheetLineCode; WorkUnitId; EntryGroupId; WorkerId;
Day1_Standard_RateId; Day1_Standard_Hours;
Day2_Standard_RateId; Day2_Standard_Hours ;
Day3_Standard_RateId; Day3_Standard_Hours ;
Day4_Standard_RateId; Day4_Standard_Hours ;
Day5_Standard_RateId; Day5_Standard_Hours ;
Day6_Standard_RateId; Day6_Standard_Hours ;
Day7_Standard_RateId; Day7_Standard_Hours ;
ConcurrencyToken ;
现在,如果一个人在第1天工作3小时并且在第5天工作5小时,则该工作日的总工作天数为2。如何使用这些字段计算两个日期之间的总工作日
答案 0 :(得分:1)
你可以这样做:
SELECT
WorkerId,
SUM(CASE WHEN Day1_Standard_Hours > 0 THEN 1 ELSE 0 END) +
SUM(CASE WHEN Day2_Standard_Hours > 0 THEN 1 ELSE 0 END) +
SUM(CASE WHEN Day3_Standard_Hours > 0 THEN 1 ELSE 0 END) +
SUM(CASE WHEN Day4_Standard_Hours > 0 THEN 1 ELSE 0 END) +
SUM(CASE WHEN Day5_Standard_Hours > 0 THEN 1 ELSE 0 END) +
SUM(CASE WHEN Day6_Standard_Hours > 0 THEN 1 ELSE 0 END) +
SUM(CASE WHEN Day7_Standard_Hours > 0 THEN 1 ELSE 0 END) TotalDays
FROM timesheetline
GROUP BY WorkerId