Perhaps the OP simply forgot to include the other cases in the where clause
ChrisM , If I can borrow your code...
Use ProdDB
SELECT TOP (100) PERCENT
[Prod No] = p.ProdNo,
[Prod Name] = p.ProdName,
[% of Total Target] = CASE
WHEN p.Measure = 'P1' THEN m.P1_Pct
WHEN p.Measure = 'P2' THEN m.P2_Pct
WHEN p.Measure = 'P3' THEN m.P3_Pct
WHEN p.Measure = 'P4' THEN m.P4_Pct
END
FROM dbo.prod p
LEFT OUTER JOIN dbo.prod_Master m
ON p.RoleID = m.RoleID
AND p.ProdNo = m.ProdNo
WHERE p.Measure IN ('P1','P2','P3','P4')
AND p.ProdRole NOT IN ('catA', 'catB')
GROUP BY
p.ProdNo,
p.Measure,
p.ProdName,
p.ProdRole,
CASE
WHEN p.Measure = 'P1' THEN m.P1_Pct
WHEN p.Measure = 'P2' THEN m.P2_Pct
WHEN p.Measure = 'P3' THEN m.P3_Pct
WHEN p.Measure = 'P4' THEN m.P4_Pct
END
Is this what you wanted?
----------------------------------------------------