2011-07-21 45 views
0

再次回到此查询。所以我认为我正在用子查询正确地做到这一点。 。 。不包含在聚合或拥有。 。

use Northwind 
Select * From (
SELECT FirstName + ' ' + LastName as 'Full Name', 
sum(UnitPrice * Quantity) as 'Total Sales', 
YEAR(OrderDate) as SalesYear 
From Employees e 
Join Orders o on o.EmployeeID = e.EmployeeID 
join OrderDetails od on od.OrderID = o.OrderID) as subst 
Group by 'Full Name', SalesYear 
Order by 'Total Sales' desc 

我得到的错误是在选择列表中的“无效,因为它不是在聚合函数或group by子句包含的。我是有没有前面的子查询和它工作得很好。

回答

2

的聚集函数(如SUM)和分组必须在查询的同一“级别”来完成:

use Northwind 
Select 'Full Name',SalesYear,SUM(Sale) as 'Total Sales' From (
    SELECT FirstName + ' ' + LastName as 'Full Name', 
    UnitPrice * Quantity as Sale, 
    YEAR(OrderDate) as SalesYear 
    From Employees e 
     Join Orders o on o.EmployeeID = e.EmployeeID 
     join OrderDetails od on od.OrderID = o.OrderID) as subst 
Group by 'Full Name', SalesYear 
Order by 'Total Sales' desc 
+0

扫清事情了感谢。 – surfasb

相关问题