Несколько столбцов из запроса в операторе UNION ALL - PullRequest
0 голосов
/ 05 марта 2019

У меня есть запрос (не написанный мной), использующий 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, есть ли способ сохранить его правильно, чтобы получить данные, которые мне нужны? Я не против, если столбец разделен на два столбца.

Спасибо!

...