Wenn Sie SQL Server 2008 oder eine neuere Version verwenden, können Sie ROLLUP()
verwenden GROUP BY-Funktion:
SELECT
Type = ISNULL(Type, 'Total'),
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;
Dies setzt voraus, dass der Type
-Spalte darf keine NULL-Werte enthalten, und daher würde NULL in dieser Abfrage die Rollup-Zeile anzeigen, diejenige mit der Gesamtsumme. Wenn jedoch der Type
-Spalte eigene NULL-Werte haben kann, wäre die richtigere Art der Abrechnung für die Gesamtzeile wie in der Antwort von @Declan_K, dh die Verwendung von GROUPING()
Funktion:
SELECT
Type = CASE GROUPING(Type) WHEN 1 THEN 'Total' ELSE Type END,
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;