>>UPDATE Client >> SET DayBetweenFirstAcceptSoldDate = CASE WHEN ....WHEN ... WHEN ... THEN ... ELSE 0 END >> FROM Client >> LEFT JOIN BusinessTime ON .... >> LEFT JOIN Company ON .... >> LEFT JOIN Research ON .... >>>>
UPDATE Client SET DayBetweenFirstAcceptSoldDate = ISNULL(Seconds,0) FROM Client LEFT JOIN (SELECT SUM(CASE WHEN ... THEN ... ELSE ... END ) as seconds, ClientID as clientid2 FROM Client LEFT JOIN Company ON Company.NoCountry=1 AND Company.Numero=Client.NoCompany LEFT JOIN Research ON Research.NoCountry=1 AND Research.Numero=Client.NoResearch LEFT JOIN BusinessTime ON BusinessTime.NoProvince = COALESCE(Company.NoProvince, Research.NoProvince, 84) AND BusinessTime.NoHoliday=0 AND BusinessTime.Start<Client.QueryDate AND BusinessTime.[End]>=Client.FirstAcceptDate WHERE Client.FirstAcceptDate>'1899-12-30 00:00:00.000' AND Client.QueryDate>'1899-12-30 00:00:00.000' AND Client.QueryDate>=Client.FirstAcceptDate AND (Client.NoCompany>0 OR Client.NoResearch>0) GROUP BY ClientID) as Temp ON ClientId = ClientID2You can run the subquery as a separate SELECT to check whether it produces the right results