进来看看我得问题吧~~~~~~~~~~~~~~~~~~~~~~~~
有这样两个表
A表 字段: 用户名 级别 B表 字段:用户名 积分
数据 aa 2 bb 50
bb 1 cc 30
cc 2 aa 10
dd 1 dd 20
ee 2 ee 80
找出用户级别为2 并且积分超过用户级别为1且积分最低的用户,并且得出来得结果要求按照积分DESC排序
如上面得数据得出得结果应该为
用户名 级别 积分
ee 2 80
cc 2 30
在线等 如果表达得不清楚,请您提问 谢谢!!!!!!!
问题点数:30、回复次数:16Top
1 楼Cloria817(心晴)回复于 2004-09-02 15:47:13 得分 0
不要沉下去啊~~~~~~~~~~~~~~~~~~~Top
2 楼caiyi000(BAICAI)回复于 2004-09-02 15:48:44 得分 0
并且积分超过用户级别为1??什么意思啊?我晕Top
3 楼Olive54321(流浪的云)回复于 2004-09-02 15:52:35 得分 0
select * from A where 级别=2 and 积分>(select min(积分) from a where 级别=1) order by 积分 descTop
4 楼Cloria817(心晴)回复于 2004-09-02 15:53:36 得分 0
听过末位淘汰吗?就是两种用户1,2进行比较,用2中的最高分来淘汰1中得最低分!Top
5 楼summercat(飘轩(灌篮高手))回复于 2004-09-02 15:55:28 得分 0
回复人: Olive54321(olive) ( ) 信誉:100 2004-09-02 15:52:00 得分: 0
select * from A where 级别=2 and 积分>(select min(积分) from a where 级别=1) order by 积分 desc
Top
6 楼caiyi000(BAICAI)回复于 2004-09-02 15:55:44 得分 5
rs.open"select top 1 表b,积分 as maxjifen from 表a inner join 表b on 表a.用户名=表b.用户名 where 级别=1 order by 积分 desc",conn,1,1
getjf=rs("maxjifen")
rs.close
rs.open"select * from 表a inner join 表b on 表a.用户名=表b.用户名 where 级别=2 and 积分>getjf order by 积分 DESC",conn,1,1
这样可以吗??
我只会这样了哦。Top
7 楼caiyi000(BAICAI)回复于 2004-09-02 15:56:32 得分 0
summercat(飘轩) 的好好啊Top
8 楼Cloria817(心晴)回复于 2004-09-02 15:59:25 得分 0
在A表中只有用户名和用户级别 2个字段 没有积分这个字段
而在B表中只有用户名和用户积分 这2个字段
请大家看清楚!!!!!Top
9 楼caiyi000(BAICAI)回复于 2004-09-02 16:00:56 得分 0
那就是这样了
select * from 表a inner join 表b on 表a.用户名=表b.用户名 where 级别=2 and 积分>(select min(积分) from a where 级别=1) order by 积分 DESCTop
10 楼caiyi000(BAICAI)回复于 2004-09-02 16:01:26 得分 0
可以吗?我也不知道。呵呵。我乱写的。Top
11 楼Cloria817(心晴)回复于 2004-09-02 16:01:59 得分 0
TO:caiyi000(BAICAI)
我来试试Top
12 楼HHH3000(蓝色爱琴海 知耻而后勇)回复于 2004-09-02 16:03:22 得分 10
这个,我试过了,应该可以
select A.用户名,A.级别,B.积分
from A inner join B
on A.用户名=B.用户名and B.积分>(select min(B.积分) from A inner join B on A.用户名=B.用户名where A.级别=1)
where A.级别=2
order by 积分 DESCTop
13 楼jjlook(勇)回复于 2004-09-02 16:07:10 得分 10
select A.*,B.积分 from A join B on A.用户名=B.用户名 where A.级别=2 and B.积分>
(select min(积分) from A join B on A.用户名=B.用户名 where A.级别=1)
不知道对不对,你试以下!Top
14 楼Cloria817(心晴)回复于 2004-09-02 16:27:18 得分 0
TO:caiyi000(BAICAI)
select * from 表a inner join 表b on 表a.用户名=表b.用户名 where 级别=2 and 积分>(select min(积分) from a where 级别=1 //把这里的级别改成2就对了) order by 积分 DESC
TO HHH3000(蓝色爱琴海) AND jjlook(勇.net)
你们的答复我都测试过全部都好用 谢谢你们 呵呵 ^-^
Top
15 楼Cloria817(心晴)回复于 2004-09-02 16:30:56 得分 0
又测试了一下caiyi000(BAICAI)你的那个SQL语句不正确啊~~~~~~~~~~~~~Top
16 楼zltostem(五湖沸人)回复于 2004-09-02 16:31:15 得分 5
select A.用户名,级别,积分 from A inner join B on A.用户名 = B.用户名 where 积分 > (select min(积分) from B inner join A where A.用户名 = B.用户名 where 级别 = 1) where 级别 = 2 order by A.用户名 desc
Top




