I have a query that is a number of unions that pull data from multiple tables. SELECT 'CURRENT_YEAR' AS D, GLNAME, AMOUNT FROM .... UNION SELCT 'PREVIOUS_YEAR' AS D, GLNAME, AMOUNT FROM ... UNION SELECT 'PLAN' AS D, GLNAME, AMOUNT FROM .... I want to create 'AMOUNT' columns based on the 'D' columns I can do this with a cross tab easy enough. The issue is I need calculated columns based on D and the AMOUNT. eg: CURRENT_YEAR, PREVIOUS_YEAR, PLAN, CURRENT_YEAR-PLAN, CURRENT_YEAR-PREVIOUS_YEAR Any ideas on how to do this?