我有一个项目清单
ItemName制造商TopSalesUnit
Item1 A 100 Item2 A 80 Item3 A 60 Item4 B 70 Item5 B 50 Item6 B 30 Item7 C 10 Item8 C 05
我希望订购记录,以便首先显示最高的TopSalesUnit项目,然后显示来自不同制造商的下一个最高项目,然后显示下一个最高项目
显示第三个制造商,等等:
ItemName制造商TopSalesUnit
Item1 A 100 Item4 B 070 Item7 C 010 Item2 A 080 Item5 B 050 Item8 C 005 Item3 A 060 Item6 B 030
解决方法
尝试:
DECLARE @YourTable table (ItemName varchar(10),Manufacturer char(1),TopSalesUnit int) INSERT @YourTable VALUES ('Item1','A ',100) INSERT @YourTable VALUES ('Item2',80) INSERT @YourTable VALUES ('Item3',60) INSERT @YourTable VALUES ('Item4','B ',70) INSERT @YourTable VALUES ('Item5',50) INSERT @YourTable VALUES ('Item6',30) INSERT @YourTable VALUES ('Item7','C ',10) INSERT @YourTable VALUES ('Item8',05) SELECT dt.ItemName,dt.Manufacturer,dt.TopSalesUnit FROM (SELECT ItemName,Manufacturer,TopSalesUnit,ROW_NUMBER() OVER(PARTITION BY Manufacturer ORDER BY TopSalesUnit DESC) AS RowNumber FROM @YourTable ) dt ORDER BY dt.RowNumber,dt.Manufacturer
OUTPUT:
ItemName Manufacturer TopSalesUnit ---------- ------------ ------------ Item1 A 100 Item4 B 70 Item7 C 10 Item2 A 80 Item5 B 50 Item8 C 5 Item3 A 60 Item6 B 30 (8 row(s) affected)
原文地址:https://www.jb51.cc/mssql/74690.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。