聚合函数中通常不允许使用子查询。相反,移动骨料 内 的子查询。在这种情况下,由于
top 5:
SELECt c.CategoryName, (select sum(val) from (SELECt TOP 5 od2.UnitPrice*od2.Quantity as val FROM [Order Details] od2, Products p2 WHERe od2.ProductID = p2.ProductID AND c.CategoryID = p2.CategoryID ORDER BY 1 DESC ) t )FROM [Order Details] od, Products p, Categories c, Orders o WHERe od.ProductID = p. ProductIDAND p.CategoryID = c.CategoryIDAND od.OrderID = o.OrderIDAND YEAR(o.OrderDate) = 1997GROUP BY c.CategoryName, c.CategoryId



