[COLOR=blue]declare[/color] @table1 [COLOR=blue]table[/color] (keyFld [COLOR=blue]varchar[/color](10), fldGroup [COLOR=blue]char[/color](1), fldAmount [COLOR=blue]int[/color])
[COLOR=blue]insert[/color] @table1
[COLOR=blue]select[/color] [COLOR=red]'key1'[/color], [COLOR=red]'A'[/color], 10
union all [COLOR=blue]select[/color] [COLOR=red]'key1'[/color], [COLOR=red]'A'[/color], 10
union all [COLOR=blue]select[/color] [COLOR=red]'key1'[/color], [COLOR=red]'B'[/color], 10
union all [COLOR=blue]select[/color] [COLOR=red]'key1'[/color], [COLOR=red]'B'[/color], 10
union all [COLOR=blue]select[/color] [COLOR=red]'key1'[/color], [COLOR=red]'B'[/color], 10
[COLOR=blue]declare[/color] @table2 [COLOR=blue]table[/color] (keyFld [COLOR=blue]varchar[/color](10), fldGroup [COLOR=blue]char[/color](1), fldAmount [COLOR=blue]int[/color])
[COLOR=blue]insert[/color] @table2
[COLOR=blue]select[/color] [COLOR=red]'key1'[/color], [COLOR=red]'A'[/color], 20
union all [COLOR=blue]select[/color] [COLOR=red]'key1'[/color], [COLOR=red]'B'[/color], 30
union all [COLOR=blue]select[/color] [COLOR=red]'key1'[/color], [COLOR=red]'C'[/color], 20
[COLOR=blue]select[/color] [COLOR=#FF00FF]coalesce[/color](t1.keyFld, t2.keyFld)
, [COLOR=#FF00FF]coalesce[/color](t1.fldGroup, t2.fldGroup) [COLOR=blue]as[/color] fldGroup
, sum(t1.fldAmount) [COLOR=blue]as[/color] SumAmt
, t2.fldAmount [COLOR=blue]as[/color] TotalAmt
[COLOR=blue]from[/color] @Table1 t1 [COLOR=blue]FULL[/color] [COLOR=blue]OUTER[/color] [COLOR=blue]JOIN[/color] @Table2 t2
[COLOR=blue]on[/color] t1.keyFld = t2.keyFld
and t1.fldGroup = t2.fldGroup
[COLOR=blue]group[/color] [COLOR=blue]by[/color] [COLOR=#FF00FF]coalesce[/color](t1.keyFld, t2.keyFld), [COLOR=#FF00FF]coalesce[/color](t1.fldGroup, t2.fldGroup), t2.fldAmount