Please use this: http://sqlfiddle.com/#!2/bcc34/12
SELECT DISTINCT PARTS.PART,
CASE WHEN PARTS.PART=T.PART3 THEN 'TRUE' ELSE NULL END AS PART3,
CASE WHEN PARTS.PART=T.PART2B THEN 'TRUE' ELSE NULL END AS PART2B,
CASE WHEN PARTS.PART=T.PART2T THEN 'TRUE' ELSE NULL END AS PART2T,
CASE WHEN PARTS.PART=T.PART1 THEN 'TRUE' ELSE NULL END AS PART1
FROM
(
SELECT
Part3,
Part2B,
Part2T,
Part1,
Scope,
Type,
Name,
Comment
FROM
TEST_ISO ) T
JOIN
(
SELECT PART3 AS PART FROM TEST_ISO
UNION
SELECT PART2B FROM TEST_ISO
UNION
SELECT PART2T FROM TEST_ISO
UNION
SELECT PART1 FROM TEST_ISO) PARTS
ON T.PART3=PARTS.PART
OR T.PART2B=PARTS.PART
OR T.PART2T=PARTS.PART
OR T.PART1=PARTS.PART
If you do not want the NULL you can change the ELSE NULL as ELSE ''
Here is my result:
PART PART3 PART2B PART2T PART1
aaa TRUE (null) (null) (null)
aar TRUE TRUE TRUE (null)
ach TRUE TRUE TRUE (null)
ave TRUE TRUE TRUE (null)
bod TRUE (null) TRUE (null)
ces TRUE (null) TRUE (null)
tib (null) TRUE (null) (null)
cze (null) TRUE (null) (null)
aa (null) (null) (null) TRUE
ae (null) (null) (null) TRUE
bo (null) (null) (null) TRUE
cs (null) (null) (null) TRUE