【发布时间】:2011-09-17 15:35:52
【问题描述】:
我必须在 SQL Server 中进行以下查询:
SELECT EmployeeID,
TotalQuantity AS TotalQty,
TotalSales,
MAX(CASE WHEN MonthNumber = MAX(MonthNumber)
THEN TotalSales END) as RecentMonthSale
FROM vwSales
GROUP BY EmployeeID, TotalQuantity , TotalSales
但它给了我错误:
Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
输入视图如下:
EmployeeID TotaSales MonthNumber
1 4000 1
1 6000 2
2 8500 1
2 6081 2
期望的输出:
EmployeeID TotalSale RecentMonthSale
1 10000 6000
2 14581 6081
3 11458 1012
我想在我的输出EmployeeID, TotalQuantity TotalSale RecentMonthSale 中有以下列我的视图有以下列EmployeeID TotalSale,TotalQuantity, MonthNumber。
【问题讨论】:
-
您能解释一下您希望查询显示的内容吗?
-
该更新几乎没有解释任何内容。给出表的准确定义、视图的准确定义以及您希望查询返回什么(如“总销售额和每个员工的最近销售额)。
标签: sql sql-server tsql sql-server-2008 query-optimization