准备一些数据:
CREATE TABLE [dbo].[SalesPerformance]( [ID] [int] IDENTITY(1,1) NOT NULL, [Salesman] NVARCHAR(30) NOT NULL, [OrderDate] [DATE] NULL, [Sell] DECIMAL(18,2) NULL )GO SELECT [Salesman],[OrderDate],[Sell] FROM [dbo].[SalesPerformance]GO
Salesman OrderDate SellS0003 2019-05-12 23800.00S0008 2019-05-19 66528.00S0001 2019-05-05 35455.00S0001 2019-05-18 75220.00S0003 2019-05-17 33658.00S0041 2019-05-10 56300.00S0041 2019-05-11 41811.00S0003 2019-05-20 26309.00S0007 2019-05-02 41811.00S0022 2019-05-26 26309.00S0032 2019-05-20 20000.00S0050 2019-05-28 20000.00
使用SUM和GROUP BY统计各个业务员的销售额:
SELECT [Salesman] AS [业务员],MONTH([OrderDate]) AS [月份], SUM([Sell]) AS [销售量]FROM [dbo].[SalesPerformance]GROUP BY [Salesman],MONTH([OrderDate])
然后使用RANK进行排名,看看谁是销售冠军,谁与谁同级:
;WITH [QuantityOfSale] AS( SELECT [Salesman] AS [业务员],MONTH([OrderDate]) AS [月份], SUM([Sell]) AS [销售量] FROM [dbo].[SalesPerformance] GROUP BY [Salesman],MONTH([OrderDate]))SELECT [业务员],[月份],[销售量],RANK() OVER( ORDER BY [销售量] DESC) [销售排名]FROM [QuantityOfSale]
原文链接:http://www.cnblogs.com/insus/p/10938336.html
本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728