SELECT
GrpID, GrpName,
ISNULL(NULLIF(MAX(CASE WHEN Spc <> 'Mixed' THEN Spc ELSE '' END), ''), 'Mixed') AS Spc
FROM #mytable
GROUP BY
GrpID, GrpName
HAVING
MAX(CASE WHEN Spc = 'Mixed' AND PrvName = '' THEN 1 ELSE 0 END) = 1 AND
COUNT(DISTINCT CASE WHEN Spc <> 'Mixed' THEN Spc END) < 2
ORDER BY
GrpID
SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.