我正在尝试获取销售人员列表以及他们在价值方面销售最多的月份。rank
我有工作查询,但直到现在我才意识到,由于该站点使用 sql server 2000 ,我将无法使用该功能。
这是我当前的查询
select top 5 name, count(*) as amount
from
(
select e.first_name + ' ' + e.last_name name,
RIGHT(CONVERT(VARCHAR(10), oe.entry_date, 105), 7) as date, sum(oe.totalPrice) price,
rank() over(partition by RIGHT(CONVERT(VARCHAR(10), oe.entry_date, 105), 7)
order by sum(oe.totalPrice) desc) as ranking
FROM order_entry oe
INNER JOIN employees e ON oe.sales_rep_emp_number = e.employee_number
group by e.first_name + ' ' + e.last_name, RIGHT(CONVERT(VARCHAR(10), oe.entry_date, 105), 7)
) temp
where ranking = 1
group by name
order by count(*) desc
我需要用不依赖rank
函数的东西替换那个内部查询。我找到了一些方法来“重现”这个函数的效果,但它们涉及制作一个带有标识列的临时表,用作排名表。但是,我有几个排名(每个月一个),所以这行不通。此外,我认为可能有另一种方法可以在没有该rank
功能的情况下实现这一目标。
有人有想法么?谢谢!