易截截图软件、单文件、免安装、纯绿色、仅160KB

sql在结果集中求最大前5列的问题?

问题描述:
例子就是northwind中的OrdersDetails表,只涉及单表查询。
求 总价格最大的前5位订单 
      总价格是SUM(UnitPrice*(1-Discount)*Quantity)

我的思路:
1.首先利用
SELECT OrderID,SUM(UnitPrice*(1-Discount)*Quantity) as '总价格'
from OrderDetails
GROUP BY OrderID
order by SUM(UnitPrice*(1-Discount)*Quantity) desc
形成结果集,如
OrderID 总价格
10865 16387.5
10981 15810
11030 12615.0498046875
10889 11380
10417 11188.4000005722
10817 10952.8449707031
10897 10835.2401733398
10479 10495.6000366211
10540 10191.6999511719
10691 10164.8000183105
........
在这个结果集的基础上,求总价格最大的前5个订单。
问题来了:
如果想用top5* from.. order by ...的格式,该怎么写?毕竟参照的是总价格,而总价格又是个聚集函数。

PS:我现在只是用游标得到了结果,不用游标呢?


排名前5的用
SELECT TOP 5 WITH TIES
只取5个用
SELECT TOP 5

SELECT top 5 OrderID,SUM(UnitPrice*(1-Discount)*Quantity) as '总价格'
from OrderDetails
GROUP BY OrderID
order by 总价格 desc



相关问答:

csv文件转换成sql导入到数据库,没有数据为何?

执行的顺序:
1)文件浏览框(选择文件使用)
选择好文件后
点击一个导入按钮的时候 ,把上面上传框里的csv文件以一个ID为文件名,上传到**/**文件夹下
2)读取这个文件夹下的csv的文件,转换成sql
3 ......

sql 函数问题 - MS-SQL Server / 应用实例

sql我想得到一字符串为:
sldkf|||sdeww
erkv|||rltdk
jemcl|||ligf
就是|||后面的字符有什么函数能得到吗?是在sql语句写的,不是在页面写的,那位高手来指教下,新手,谢谢
晕今天不是写了么

select parsen ......

求一条SQL - MS-SQL Server / 疑难问题

--drop table #T1
--drop table #T2
create Table #T1(ID int,
QueryID nvarchar(20),
ResultID1 nvarchar(20),
ResultID2 nvarchar(20))
create Table #T2(SortNo int,
QueryID nvarchar(20),
ResultID1 nv ......

sql存储过程时间相减 - MS-SQL Server / 基础类

CREATE PROCEDURE [selectvipcompany] 
@username varchar(50),
@companyname varchar(50),
@endtime varchar(1)
AS
declare @sql varchar(1000)
set @sql=''
if (@username<>null and @username ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号