UPDATE Client SET DayBetweenFirstDateSecondDate= (SELECT SUM(Temp.SecondValue)/3600.0/8 AS HourValue FROM (SELECT DATEDIFF(SECOND, CASE WHEN BusinessTime.Start>Client.FirstDate THEN BusinessTime.Start ELSE Client.FirstDate END, CASE WHEN BusinessTime.[End]<Client.SecondDate THEN BusinessTime.[End] ELSE Client.SecondDate END) AS SecondValue FROM BusinessTime WHERE BusinessTime.NoProvince=84 AND BusinessTime.NoHoliday=0 AND ((BusinessTime.Start>=Client.FirstDate AND BusinessTime.Start<=Client.SecondDate) OR (BusinessTime.[End]>=Client.FirstDate AND BusinessTime.[End]<=Client.SecondDate))) Temp)If I would have executed this in code, it would have taken approximately 10 to 20 minutes.