You could also try a cross tabs approach.
SELECT BUSINESS_NAME,
CONTRACT_CATEGORY,
SUM( CASE WHEN NAME = 'RX' THEN VALUE ELSE 0 END) AS RX,
SUM( CASE WHEN NAME = 'PRODUCT' THEN VALUE ELSE 0 END) AS [PRODUCT]
FROM (
SELECT
BUSINESS_NAME ,
CONTRACT_CATEGORY ,
SUM(VALUE) AS VALUE,
NAME
FROM PRODUCT_CAT
GROUP BY BUSINESS_NAME ,
CONTRACT_CATEGORY ,
NAME)UP
GROUP BY BUSINESS_NAME ,
CONTRACT_CATEGORY;