2016-11-28 4 views
1

Я пытаюсь объединить все два запроса, один из которых имеет группу, и другой, это просто жестко закодированное значение без таблицы.Группа при использовании союза

SELECT 'All' Category 
UNION 
SELECT Category as Category 
FROM WV_BlogData 
GROUP BY Category 
ORDER BY COUNT(BlogDataID) desc 

У меня возникает следующая ошибка, как избавиться от этого?

Msg 207, уровень 16, состояние 1, строка 50 Недопустимое имя столбца 'BlogDataID'. Msg 104, уровень 16, состояние 1, строка 50 Элементы ORDER BY должны отображаться в списке выбора , если оператор содержит оператор UNION, INTERSECT или EXCEPT .

+2

если я м не неправильный порядок по столбцам должен быть частью списка выбора столбца –

+0

По крайней мере, когда UNION (или аналогичный). – jarlh

ответ

5

обернуть UNION в производной таблице:

select Category 
from 
(
    SELECT 'All' Category, 0 as cnt 
    UNION 
    SELECT Category as Category, COUNT(BlogDataID) as cnt 
    FROM WV_BlogData 
    GROUP BY Category 
) dt 
ORDER BY cnt desc 
Смежные вопросы