I believe this option is better for performance.
SELECT ID,
SUM( CASE WHEN Type = 'a' THEN Amount ELSE 0 END) AS Amount_A,
SUM( CASE WHEN Type = 'b' THEN Amount ELSE 0 END) AS Amount_B
FROM MyTable
GROUP BY ID
ORDER BY ID
For more information, you can check Cross Tabs and Pivots, Part 1 – Converting Rows to Columns[/url]