Я не большой поклонник модели subquery(subquery(subquery(
, так как это часто расточительно и обычно трудно анализировать / понимать / переписывать. Вот как я изначально хотел переписать его, когда увидел:
SELECT TOP (1) E.Gender, mm = SUM(SP.Bonus)
FROM Sales.SalesPerson AS sp
INNER JOIN HumanResources.Employee AS E
ON E.EmployeeID = sp.EmployeeID -- guess on relationship
GROUP BY E.Gender
ORDER BY mm DESC;
Другой способ (потенциально более эффективный в зависимости от плана, поскольку вы исключите из объединения всех, кроме одного сотрудника - что-то, что может произойти выше, но не может):
;WITH sp AS
(
SELECT TOP 1 EmployeeID, mm = SUM(Bonus)
FROM Sales.SalesPerson
GROUP BY EmployeeID
ORDER BY mm DESC
)
SELECT E.Gender, topsp.mm
FROM sp
INNER JOIN HumanResources.Employee AS E
ON E.EmployeeID = sp.EmployeeID; -- again guessing on relationship