2016-11-28 19 views
1

Ich versuche, alle zwei Abfragen, die eine Gruppe durch eine andere und ist nur ein hart codierter Wert ohne eine Tabelle.Gruppe von während der Verwendung von Union

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

Ich bekomme folgenden Fehler, wie man das loswerden?

Msg 207, Ebene 16, Status 1, Zeile 50 Ungültiger Spaltenname 'BlogDataID'. Nachricht 104, Ebene 16, Status 1, Zeile 50 ORDER BY-Elemente müssen in der Auswahlliste erscheinen, wenn die Anweisung einen Operator UNION, INTERSECT oder EXCEPT enthält.

+2

wenn ich nicht falsch, um durch Spalte m sollte ein Teil der Auswahlspaltenliste –

+0

Zumindest, wenn UNION (oder ähnlich) sein. – jarlh

Antwort

5

Wickeln Sie Ihre UNION oben in einer abgeleiteten Tabelle:

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 
Verwandte Themen