2016-03-22 20 views
0

Ich muss meine SQL-Abfrage erweitern, die Untersummen & Summen zurückgibt. Gibt es eine Möglichkeit beide Teilsummen und Endsumme mit dieser Abfrage zurück:Sub total & total mit Aggregat

Ich habe Daten wie folgt aus:

Department Employee Sal 
A   Jack  1000   
A   Pack  1000   
A   Dack  1000   
B   BEN  1000   
B   HEN  1000   
C   SIN  1000 

ich das Wollen, also Teilsumme & Summe für die ganze Abteilung

Department Employee Sal 
A   Jack  1000   
A   Pack  1000   
A   Dack  1000  
A_Sub_Total   3000  
B   BEN  1000   
B   MAT  1000   
B_Sub_Total   2000  
C   SIN  1000 
C_Sub_Total   1000  
Total    6000 

ich versuchte Rechenfunktion, dh "Compute Sum (Sal) von der Abteilung" zu verwenden es nicht diese

Antwort

0

Versuchen funktioniert:

SELECT [Department], [Employee], [Sal] 
FROM #mytable 

UNION ALL 

SELECT [Department] + '_Sub_Total', 
     NULL, 
     SUM([Sal]) AS Sal 
FROM #mytable 
GROUP BY [Department] 

UNION ALL 

SELECT 'Total', NULL, SUM([Sal]) AS Sal 
FROM #mytable 
ORDER BY Department 
0

Sie können WITH ROLLUP verwenden.

SELECT ISNULL(Department, 'Total'), ISNULL(Employee, Department + '_Sub_Total'), SUM(Sal) AS Sal FROM [test] GROUP BY Department, Employee WITH ROLLUP 
Verwandte Themen