• The only suggestion I can give at this point since all of the real code is masked in the table tha holds the where clause, but here goes;

    You might be able to do the union all's at first.

    select 'TheFirstSum' as Field, sum(TheSumField) As Value

    ...

    Group by ...

    union all

    select 'TheSecondSum' as Field, sum(TheSumField) as Value

    ...

    Group by ...

    etc...

    Then using pivot that out using case/group by's unless you are using 2005 then just pivot.

    GroupbyField1, GroupByField2,TheFirstSum,TheSecondSum,etc...

    That can then be joined to do your update in one pass.

    Without details, not sure if it will be faster.

    Can you supply some test cases? Spend some time to get us something that we can work with.