关于sql复杂排序,急

iavjfcu2003 2005-05-16 11:57:05
有一个表aa
字段
username 个人用户
prv 省份
money 积分

我现在要实现功能是:
取各省前十名积分的个人用户积分总和作为该省的一个指标数,用这个指标在全国内排名次(按省份指标高低)????
如果不做按省份指标高低,我能比较容易完成.但是现在这样的排名我想不出方法不添加表的情况下能完成吗(可用临时表,但我不熟),我目前不能自由去创建表所以能做的只是临时表,请高手指教!最好给出代码!
...全文
125 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoyaozgc 2005-05-16
  • 打赏
  • 举报
回复
学习
hxyman 2005-05-16
  • 打赏
  • 举报
回复
上面sql = "select top 10 money from tableaa where prv = '"&prv&"'这句写错了

学ASP不久

可能还有语法错误
用的方法也很笨拙
希望能对你有点帮助
valu 2005-05-16
  • 打赏
  • 举报
回复
strSql="CREATE TABLE #tmp_table (id int IDENTITY (1, 1) PRIMARY KEY, username nvarchar (50), prv nvarchar (50), money int DEFAULT (0))"
strSq=strSql+"; INSERT INTO #tmp_table (username, prv, money) SELECT TOP 10 username, prv, money FROM my_table ORDER BY money"
这是建临时表并填充数据,剩下的你自己能搞定了吧。
hxyman 2005-05-16
  • 打赏
  • 举报
回复
<%
rs.open "select distinct prv from aa",cn
do while not rs.eof
prv = rs("prv")
money = 0
sql = "select top 10 money from tableaa where prv = '"&prv&"'
rs1.open sql,cn
do while not rs1.eof
money = money + rs1("money")
rs1.movenext
loop
ary("&prv&") = money
rs.movenext
loop%>

再对ary("&prv&")排序
baikaishui_0825 2005-05-16
  • 打赏
  • 举报
回复
--我这里只测试了top 2,而且测试的数据不多,你试下
--测试数据
create table aa(username nvarchar(20),prv nvarchar(20),[money] int)
insert into aa
select 'a','浙江',2
union all
select 'b','浙江',3
union all
select 'c','上海',4
union all
select 'd','上海',5
union all
select 'e','浙江',5
select * from aa

select distinct prv,
(select sum(d.[money]) from (select top 2 * from aa c where c.prv=b.prv order by c.[money] desc)d ) as guideline
from aa b
order by guideline desc
--删除测试数据
drop table aa
jxhshsm 2005-05-16
  • 打赏
  • 举报
回复
可以试一下
iavjfcu2003 2005-05-16
  • 打赏
  • 举报
回复
select distinct prv,
(select sum(d.[money]) from (select top 2 * from aa c where c.prv=b.prv order by c.[money] desc)d ) as guideline
from aa b
order by guideline desc

就用回复人:baikaishui_0825(baikaishui) () 信誉:100 的思路我实现了我所要实现的在此感谢
iavjfcu2003 2005-05-16
  • 打赏
  • 举报
回复
大家有点误解了我说的表aa是已经有的数据表,我要做的就是对这个表计进统计显示,显示的要求是:

取各省前十名积分的个人用户积分总和作为该省的一个指标数,用这个指标在全国内排名次(按省份指标高低)????

回复人: baikaishui_0825(baikaishui) ( ) 信誉:100 2005-05-16 12:40:00 得分: 0
这个回答我看有点意思,

select distinct prv,
(select sum(d.[money]) from (select top 2 * from aa c where c.prv=b.prv order by c.[money] desc)d ) as guideline
from aa b
order by guideline desc

我可以按这个思路试试看
关于本书 简单地说,Java 8中的新增功能是自Java 1.0发布18年以来,Java发生的最大变化。没有去掉 任何东西,因此你现有的Java代码都能工作,但新功能提供了强大的新语汇和新设计模式,能帮 助你编写更清楚、更简洁的代码。就像遇到所有新功能时那样,你一开始可能会想:“为什么又 要去改我的语言呢?”但稍加练习之后,你就会发觉自己只用预期的一半时间,就用新功能写出 了更短、更清晰的代码,这时你会意识到自己永远无法返回到“旧Java”了。 本书会帮助你跨过“原理听起来不错,但还是有点儿新,不太适应”的门槛,从而熟练地进 行编程。 “也许吧,”你可能会想,“可是Lambda、函数式编程,这些不是那些留着胡子、穿着凉鞋的 学究们在象牙塔里面琢磨的东西吗?”或许是的,但Java 8中加入的新想法的分量刚刚好,它们 带来的好处也可以被普通的Java程序员所理解。本书会从普通程序员的角度来叙述,偶尔谈谈“这 是怎么来的”。 “Lambda,听起来跟天书一样!”是的,也许是这样,但它是一个很好的想法,让你可以编 写简明的Java程序。许多人都熟悉事件处理器和回调函数,即注册一个对象,它包含会在事件发 生时使用的一个方法。Lambda使人更容易在Java中广泛应用这种思想。简单来说,Lambda和它 的朋友“方法引用”让你在做其他事情的过程中,可以简明地将代码或方法作为参数传递进去执 行。在本书中,你会看到这种思想出现得比预想的还要频繁:从加入作比较的代码来简单地参数 化一个排序方法,到利用新的Stream API在一组数据上表达复杂的查询指令。 “流(stream)是什么?”这是Java 8的一个新功能。它们的特点和集合(collection)差不 多,但有几个明显的优点,让我们可以使用新的编程风格。首先,如果你使用过SQL等数据库 查询语言,就会发现用几行代码写出的查询语句要是换成Java要写好长。Java 8的流支持这种简 明的数据库查询式编程——但用的是Java语法,而无需了解数据库!其次,流被设计成无需同 时将所有的数据调入内存(甚至根本无需计算),这样就可以处理无法装入计算机内存的流数据 了。但Java 8可以对流做一些集合所不能的优化操作,例如,它可以将对同一个流的若干操作组 合起来,从而只遍历一次数据,而不是花很大代价去多次遍历它。更妙的是,Java可以自动将 流操作并行化(集合可不行)。 “还有函数式编程,这又是什么?”就像面向对象编程一样,它是另一种编程风格,其核心 是把函数作为值,前面在讨论Lambda的时候提到过。 Java 8的好处在于,它把函数式编程中一些最好的想法融入到了大家熟悉的Java语法中。有 了这个优秀的设计选择,你可以把函数式编程看作Java 8中一个额外的设计模式和语汇,让你可 以用更少的时间,编写更清楚、更简洁的代码。想想你的编程兵器库中的利器又多了一样。 当然,除了这些在概念上对Java有很大扩充的功能,我们也会解释很多其他有用的Java 8功 能和更新,如默认方法、新的Optional类、CompletableFuture,以及新的日期和时间API。 别,这只是一个概览,现在该让你自己去看看本书了

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧