请问一个成绩统计SQL语句怎么写?

Borland_Delphi 2003-08-19 08:12:09
救命啊~~~~~~~~~~~~~~大虾们帮帮忙~~~~~~~~~~~~~不胜感激

涉及三个表
-----------------------
成绩表:
ID,ManID,Score
1 10 10
2 11 20
3 14 40
4 10 10
5 10 10
------------------------
地区表:
DID,。。。。。。
1 ...
2 ...
3 ...
----------------------
人员资料表:
ManID,DID
10 1
11 2
14 3
--------------------------------
怎么写SQL语句得到这样的结果?

名次 DID TotalScore
1 x m
2 y n
3 z k
.....
...全文
79 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
suton 2003-08-19
  • 打赏
  • 举报
回复
(select clause 1) union (對clause 1 匯總的 sql 語句)
xhh_88 2003-08-19
  • 打赏
  • 举报
回复
{A,Q} 叫 “问非所答” :)
suton 2003-08-19
  • 打赏
  • 举报
回复
use union
Borland_Delphi 2003-08-19
  • 打赏
  • 举报
回复
thx pengdali(大力 V2.0)和各位大虾,马上给分

名次 DID TotalScore
1 x 80
2 y 90
3 z 100
总计:270

这个总计呢?
xhh_88 2003-08-19
  • 打赏
  • 举报
回复
A:
*****************
SQL Server
TotalScore就是总分啊

谢谢suton(suton)!不过有个问题,要是某个地区(比如DID=4),属于这个地区的人员如果在成绩表中没有得分的话,在统计的名次中不会有DID=4这个地区的排名啊
*********************************************
Q:
select a.Did,sum(case when Score is null then 0 else Score end) as TotalScore
from 地区表 a
left join 人員資料表 as b on a.Did=b.Didleft join as c
left join 成绩表 as c on c.manid=b.manid
group by did
suton 2003-08-19
  • 打赏
  • 举报
回复
要是某个地区(比如DID=4),属于这个地区的人员如果在成绩表中没有得分的话,在统计的名次中不会有DID=4这个地区的排名啊

用isnull函數
pengdali 2003-08-19
  • 打赏
  • 举报
回复
select identity(int,1,1) 名次,b.did,isnull(sum(a.Score),0) TotalScore into # from 成绩表 a right join 人员资料表 b on a.ManID=b.ManID group by b.did order by isnull(sum(a.Score),0) desc
select * from #
wyr521 2003-08-19
  • 打赏
  • 举报
回复
select identity(int,1,1) 名次,b.did,sum(a.Score) TotalScore into # from 成绩表 a,人员资料表 b where a.ManID=b.ManID group by b.did order by sum(a.Score) desc
select * from #
nhdj 2003-08-19
  • 打赏
  • 举报
回复
你可以在table中自己增加个查询的字段阿,关联一下表就可以了
就是双击表用add new fields 中的lookup 就可以了,至于能不能用sql一下子选出来,偶没有试过
学习~~~
Borland_Delphi 2003-08-19
  • 打赏
  • 举报
回复
SQL Server
TotalScore就是总分啊

谢谢suton(suton)!不过有个问题,要是某个地区(比如DID=4),属于这个地区的人员如果在成绩表中没有得分的话,在统计的名次中不会有DID=4这个地区的排名啊
pengdali 2003-08-19
  • 打赏
  • 举报
回复
sqlserver:

select identity(int,1,1) 名次,b.did,sum(a.Score) TotalScore into # from 成绩表 a,人员资料表 b where a.ManID=b.ManID group by b.did order by sum(a.Score) desc
select * from #
xhh_88 2003-08-19
  • 打赏
  • 举报
回复
select Did,sum(Score) as TotalScore
from 成績表 as a
left join 人員資料表 as b on a.manid=b.manid
group by did
pengdali 2003-08-19
  • 打赏
  • 举报
回复
select b.did,sum(a.Score) TotalScore from 成绩表 a,人员资料表 b where a.ManID=b.ManID group by b.did order by sum(a.Score) desc
pengdali 2003-08-19
  • 打赏
  • 举报
回复
什么数据库?
TotalScore是哪个表里的?
suton 2003-08-19
  • 打赏
  • 举报
回复
掉了 group by did
suton 2003-08-19
  • 打赏
  • 举报
回复
select Did,sum(Score) as TotalScore from 成績表 as a left join 人員資料表 as b
on a.manid=b.manid

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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