Hvis du er på SQL Server 2008 eller nyere version, kan du bruge ROLLUP()
GROUP BY-funktion:
SELECT
Type = ISNULL(Type, 'Total'),
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;
Dette forudsætter, at Type
kolonnen kan ikke have NULL'er, og så NULL'en i denne forespørgsel ville indikere rollup-rækken, den med totalsummen. Men hvis Type
kolonne kan have sine egne NULL-værdier, den mere korrekte type regnskab for den samlede række ville være som i @Declan_K's svar, dvs. ved at bruge GROUPING()
funktion:
SELECT
Type = CASE GROUPING(Type) WHEN 1 THEN 'Total' ELSE Type END,
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;