У меня есть запрос (не написанный мной), использующий UNION ALL - однако данные, возвращаемые в столбце «Разделенная оценка», должны показывать значение NULL, если они возвращаются любым оператором SELECT в объединении.
Следующий запрос предоставляет часть данных, которые я ищу:
SELECT
switches.HostName
, SUM(score) AS realTimeCap
, st.description AS 'Switch Type'
, switches.switchid
, GROUP_CONCAT(score) AS 'Separated Score'
FROM
(
SELECT
SwitchID, CallStackDepth * COUNT(*) AS score
FROM huntandpagingfeatures
JOIN huntgroupmembers
ON huntgroupmembers.HuntGroupDN = huntandpagingfeatures.ListDN
WHERE IsHuntGroup = 1
GROUP BY SwitchID
UNION ALL
SELECT
SwitchID, COUNT(*) / 2 AS score
FROM userprogbuttons
JOIN maes
ON maes.MAE_DN=userprogbuttons.DialNumberDN
WHERE userprogbuttons.FunctionID = 30
GROUP BY SwitchID
) t
JOIN switches
ON t.SwitchID = switches.SwitchID
JOIN Switchtypes st ON switches.SwitchTypeID = st.SwitchTypeID
GROUP BY t.SwitchID, st.description
ORDER BY realtimecap DESC
Иногда в столбце «Отдельная оценка» может отображаться только одно значение, но не известно, какой оператор выбора используется для создания этого значения. Даже если значение равно NULL, есть ли способ сохранить его правильно, чтобы получить данные, которые мне нужны? Я не против, если столбец разделен на два столбца.
Спасибо!