Si vous êtes sur SQL Server 2008 ou une version ultérieure, vous pouvez utiliser le ROLLUP()
Fonction GROUP BY :
SELECT
Type = ISNULL(Type, 'Total'),
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;
Cela suppose que le Type
La colonne ne peut pas avoir de NULL et donc le NULL dans cette requête indiquerait la ligne de cumul, celle avec le total général. Cependant, si le Type
la colonne peut avoir ses propres valeurs NULL, le type de comptabilisation le plus approprié pour la ligne totale serait comme dans la réponse de @Declan_K, c'est-à-dire en utilisant le GROUPING()
fonction :
SELECT
Type = CASE GROUPING(Type) WHEN 1 THEN 'Total' ELSE Type END,
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;