Если вы на SQL Server 2008 или более поздней версии, вы можете использовать ROLLUP()
GROUP BY функции:
SELECT
Type = ISNULL(Type, 'Total'),
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;
Это предполагает, что Type
столбец не может иметь значение NULL, и поэтому NULL в запросе будет указать свернутая строка, одна с общей суммой. Однако, если Type
столбец может иметь значение NULL своих, тем более надлежащий вид учета для общего ряда будет, как в @ Declan_K отвечают, то есть с помощью GROUPING()
функции:
SELECT
Type = CASE GROUPING(Type) WHEN 1 THEN 'Total' ELSE Type END,
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;
Sql Server имеет поддержку подытогами: [см. с rollup] (http://msdn.microsoft.com/en-us/library/ms189305%28v=sql.90%29.aspx). –