排名问题?急~~~~

简单dian 2006-05-24 02:53:49
jxpf(评分表)

szbianhao pinggu
SZ2006050069 12
SZ2006050069 50
sz0001 30
sz0001 40


shizi(教师表)
bianhao
SZ2006050069
sz0001
1002


要求:按教师求总评分并排名
结果:bianhao pinggu pm
sz0001 70 1
SZ2006050069 62 2
1002 NULL(未评分) 3


十万火急 谢谢了 !!



...全文
128 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
冷箫轻笛 2006-05-25
  • 打赏
  • 举报
回复
结果

sz0001 70 1
SZ2006050069 62 2
1002 未评分 3
冷箫轻笛 2006-05-25
  • 打赏
  • 举报
回复

create table jxpf
(
szbianhao varchar(20),
pinggu int
)

create table shizi
(
bianhao varchar(20)
)

insert into jxpf select 'SZ2006050069', 12
insert into jxpf select 'SZ2006050069', 50
insert into jxpf select 'sz0001', 30
insert into jxpf select 'sz0001', 40

insert into shizi select 'SZ2006050069'
insert into shizi select 'sz0001'
insert into shizi select '1002'


select bianhao,pinggu,pm = (select count(1)+1 from (select szbianhao,sum(pinggu) as pinggu from jxpf group by szbianhao)t4 where pinggu > t3.pinggu2 )
from
(select t1.bianhao,isnull(cast(t2.pinggu as varchar),'未评分') as pinggu,isnull(cast(t2.pinggu as varchar),0) as pinggu2
from shizi t1 left join (select szbianhao,sum(pinggu) as pinggu from jxpf group by szbianhao) t2
on t1.bianhao = t2.szbianhao
)t3
order by pm
csii2000 2006-05-24
  • 打赏
  • 举报
回复
上面发错了,修改如下
select szbianhao,sum(pinggu) as sumpinggu,IDENTITY(int,1,1) as pm into #tt from jxpf group by szbianhao
select * from shizi left join #tt on shizi.bianhao=#tt.szbianhao
liangpei2008 2006-05-24
  • 打赏
  • 举报
回复
子陌厉害!学习
简单dian 2006-05-24
  • 打赏
  • 举报
回复
十分感谢
csii2000 2006-05-24
  • 打赏
  • 举报
回复
select szbianhao,sum(pinggu),IDENTITY(int,1,1) as pm from jxpf group by szbianhao
子陌红尘 2006-05-24
  • 打赏
  • 举报
回复
declare @t1 table(szbianhao varchar(12),pinggu int)
insert into @t1 select 'SZ2006050069',12
insert into @t1 select 'SZ2006050069',50
insert into @t1 select 'sz0001' ,30
insert into @t1 select 'sz0001' ,40


declare @t2 table(bianhao varchar(12))
insert into @t2 select 'SZ2006050069'
insert into @t2 select 'sz0001'
insert into @t2 select '1002'


select
c.bianhao,c.pinggu,isnull(count(d.bianhao),0) as num
from
(select a.bianhao,sum(b.pinggu) pinggu from @t2 a left join @t1 b on a.bianhao=b.szbianhao group by a.bianhao) c,
(select a.bianhao,sum(b.pinggu) pinggu from @t2 a left join @t1 b on a.bianhao=b.szbianhao group by a.bianhao) d
where
isnull(c.pinggu,0)<=isnull(d.pinggu,0)
group by
c.bianhao,c.pinggu
order by
num

/*
bianhao pinggu num
------------ ----------- -----------
sz0001 70 1
SZ2006050069 62 2
1002 NULL 3
*/
简单dian 2006-05-24
  • 打赏
  • 举报
回复
自己顶一下吧

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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