SQL SERVER T-SQL Zwischensumme und Summe nach Gruppe berechnen

Ich versuche, einer Tabelle eine Zwischensumme nach Gruppe und Summe hinzuzufügen. Ich habe die Daten anhand des folgenden Beispiels neu erstellt.

DECLARE @Sales TABLE(
        CustomerName  VARCHAR(20),
        LegalID VARCHAR(20),
        Employee VARCHAR(20),
        DocDate DATE,
        DocTotal Int,
        DueTotal Int
)
INSERT INTO @Sales SELECT 'Jhon Titor','12345', 'Employee1','2015-09-01',1000,200 
INSERT INTO @Sales SELECT 'Jhon Titor','12345', 'Employee1','2015-08-20',500,100
INSERT INTO @Sales SELECT 'Jhon Titor','12345', 'Employee1','2015-08-18',200,50 
INSERT INTO @Sales SELECT 'Deli Armstrong','2345', 'Employee1','2015-09-17',2300,700
INSERT INTO @Sales SELECT 'Deli Armstrong','2345', 'Employee1','2015-09-11',5000,1000
INSERT INTO @Sales SELECT 'Ali Mezzu','6789', 'Employee1','2015-09-07',300,200

Auswahl@Sales

Ich muss die Kundenzwischensumme direkt unterhalb des Kundenvorkommens und die Gesamtsumme in der Endzeile der Tabelle wie folgt hinzufügen:

was ich bisher ausprobiert habe:

select 
    case 
        when GROUPING(CustomerName) = 1 and
             GROUPING(Employee) = 1 and 
             GROUPING(DocDate) = 1 and
             GROUPING(LegalID) = 0 then 'Total ' + CustomerName

        when GROUPING(CustomerName) = 1 and
             GROUPING(Employee) = 1 and
             GROUPING(DocDate) =1 and
             GROUPING(LegalID) = 1 then 'Total'

        else CustomerName end as CustomerName,
    LegalID, Employee,DocDate,
    sum(DocTotal) as DocTotal,
    sum(DueTotal) as DueTotal 
From @Sales 
group by LegalID, CustomerName,Employee,DocDate with rollup

Aber ich erhalte die Zwischensumme als Null, wo es sagen sollteTotal Jhon Titor wie ich es in der Abfrage statisch gesetzt habe, wird es auch für jede nicht aggregierte Spalte (3) wiederholt,

Wie kann ich der oben dargestellten Tabelle eine Zwischensumme und eine Gesamtsumme hinzufügen?

Ich bin offen für die Verwendung einer Abfrage ohne ROLLUP-Operator. Ich denke, es ist möglich, Gewerkschaften zu verwenden, aber ich weiß nicht, wie ich anfangen soll.

ielen Dank, dass Sie sich mit meiner Frage befasst habe

Antworten auf die Frage(4)

Ihre Antwort auf die Frage