2017-01-20 5 views
0
DECLARE @VARIABLE AS BIGINT 
SET @VARIABLE = Sum((Select Top 5 SUM(Quantity) FROM Orders Group by MenuItemName Order by Quantity Desc)) 
Print @VARIABLE 

Dies wird einen Fehler zurück:Wie kann ich die Summe aus der folgenden Abfrage erhalten?

Kann nicht eine Aggregatfunktion auf einem Ausdruck durchführen, das ein Aggregat oder eine Unterabfrage

Wie ich das erreichen kann?

Antwort

3

Sie erwägen wollen die Datensätze in sum(Quantity) nicht nur Quantity

Versuchen Sie, diese Art und Weise

DECLARE @VARIABLE AS BIGINT 

SET @VARIABLE = (SELECT Sum(Quantity) 
       FROM (SELECT TOP 5 sum(Quantity) Quantity 
         FROM Orders 
         GROUP BY MenuItemName 
         ORDER BY Quantity DESC) a) 

PRINT @VARIABLE 
+0

Vielen Dank Sir –

1

Sie select @variable = verwenden können, um zu bestellen, und Sie sollten wahrscheinlich von sum(Quantity) desc Bestellung werden.

declare @variable as bigint; 

select @variable = Sum(SumQuantity) 
    from (
    select top 5 
     SumQuantity=Sum(Quantity) 
     from Orders 
     group by MenuItemName 
     order by Sum(Quantity) desc 
    ) as x; 

print @variable; 
Verwandte Themen