Jeśli jesteś na SQL Server 2008 lub nowszej, można użyć GROUP ROLLUP()
przez funkcję:
SELECT
Type = ISNULL(Type, 'Total'),
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;
ta zakłada, że kolumna Type
nie może mieć wartości null i tak NULL w tego zapytania będzie wskazywać wiersz zwijania, ten z sumą całkowitą. Jednakże, jeśli kolumna Type
może mieć wartości null własnych, tym bardziej właściwy rodzaj rachunkowości za łączną rzędu będzie jak w użytkownika @ Declan_K odpowiedź, czyli używając GROUPING()
funkcję:
SELECT
Type = CASE GROUPING(Type) WHEN 1 THEN 'Total' ELSE Type END,
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;
SQL Server obsługuje sumy cząstkowe: [patrz z rollup] (http://msdn.microsoft.com/en-us/library/ms189305%28v=sql.90%29.aspx). –