SQL Server crée une ligne grand total

J'ai une table qui contient les détails de la command. Comment puis-je créer une ligne à la fin qui totalise tous mes sous-totaux?

SELECT o.order_id, o.itemDescription as Description, o.quantity_shipped as [Quantity], o.itemCost as [Price each], (o.quantity_shipped * CAST(o.itemCost as float)) as [Sub Total] FROM dbo.order_items o 

Cela vous donnera total par ID de command

 SELECT o.order_id, SUM((o.quantity_shipped * CAST (o.itemCost as float))) as [TotalByOrderId] FROM dbo.order_items o GROUP BY o.order_id 

Cela vous donnera un total général

 SELECT SUM((o.quantity_shipped * CAST (o.itemCost as float))) as [GrandTotal] FROM dbo.order_items o 

Un moyen (pas le plus performant) peut être le suivant:

 ;WITH CTE AS ( SELECT o.order_id, o.itemDescription as Description, o.quantity_shipped as [Quantity], o.itemCost as [Price each], (o.quantity_shipped * CAST(o.itemCost as float)) as [Sub Total] FROM dbo.order_items o) SELECT * FROM CTE UNION ALL SELECT NULL, 'Grand Total', NULL, NULL, SUM([Sub Total]) FROM CTE 

Pourquoi ferais-tu ça? L'ajout d'une ligne totale vide de sens rend le traitement beaucoup plus compliqué par la suite. Sauf si vous faites des sumbtotals hiérarchiques pour les sous-lignes.

La manière normale est traitée en ayant des totaux dans la table des factures.