Я довольно плохо знаком с SQL и не могу понять, как объединить 3 столбца в 1, чтобы упростить создаваемый отчет. Столбцы используют операторы CASE. Основываясь на моих исследованиях, я считаю, что мне нужно использовать UNION или UNION ALL, но все, что я пробовал, не сработало.
Вот код. Я опустил несколько столбцов и просто оставил эти 3 столбца для краткости.
SELECT
CASE
WHEN r.scode IS NULL THEN ''
ELSE r.scode
END 'Column 1',
CASE
WHEN (SELECT DISTINCT u.scode
FROM Unit
WHERE c.itype = 4) IS NULL THEN ''
ELSE u.scode
END 'Column 2',
CASE
WHEN (SELECT DISTINCT f.scode
FROM UnitType
WHERE c.itype = 10) IS NULL THEN ''
ELSE f.scode
END 'Column 3'
FROM CapsConfig c
INNER JOIN CapsXref x
ON c.hmy = x.hcapsconfig
INNER JOIN Prop p
ON c.hprop = p.hmy
LEFT OUTER JOIN ChgTyp t
ON x.hchgcode = t.hmy
LEFT OUTER JOIN Tenant r
ON c.hpointer = r.hmyperson
LEFT OUTER JOIN Unit u
ON c.hpointer = u.hmy
LEFT OUTER JOIN UnitType f
ON c.hpointer = f.hmy;
Токовый выход:
Column 1 Column 2 Column 3
0021117U
0021117U
0021117U
0032117U
0032117U
0032117U
16NL1
16NL1
16NL1
102FL1
102FL1
102FL1
t0002177
t0002178
t0002178
t0002178
Я бы хотел, чтобы это было:
Combined
0021117U
0021117U
0021117U
0032117U
0032117U
0032117U
16NL1
16NL1
16NL1
102FL1
102FL1
102FL1
t0002177
t0002178
t0002178
t0002178
Любая помощь будет оценена.