Re: [SQL ] 请问 103年软件设计竞赛题目

楼主: cutekid (可爱小孩子)   2015-07-19 16:10:24
MSSQL:
select cast(teamno as integer) num
from item_score
where groupname = 'groupB'
group by teamno
having min(score) != 0
order by num
※ 引述《s900362123 (s900362123)》之铭言:
: 内容/问题描述:
: 请找出'groupB'参赛队伍的答题中没有任一小题为0分的队伍,列出队伍编号。显示结果
: 采用队伍编号由小而大排序显示,且同一队伍编号不重复显示。
: 资料结构 :
: item_score
: groupname 可变长度字串(长度为10) –参赛组别, 分成’groupA’及’groupB’
: teamno 可变长度字串(长度为8) –队伍编号
: pnum 整数(长度为2) – 题号, 默认值为0
: score 整数(长度为4) – 该题得分, 默认值为0
: 其中group、teamno 和pnum合起来为主键(primary key)。
: 这是我写的
: select a.groupname,a.teamno,a.pnum,a.score from
: (select * from item_score where groupname="groupB" and score<>0)a,
: (select * from item_score where groupname="groupB" and score=0 group by
: teamno)b
: where a.teamno <> b.teamno
: group by teamno
: 我先找出B所有的分数,再找出B 分数=0的资料 然后group by teamno
: 条件所有的teamno不等于 B分数=0的teamno
: 但是结果还是有=0的 teamno
作者: bluegti (喵喵)   2015-07-19 21:22:00
这个写法比较好耶...
作者: ClubT (小喬)   2015-07-21 10:01:00
前提是没有负分呢XD
楼主: cutekid (可爱小孩子)   2015-07-21 13:31:00
哈哈,的确不能有“负分”XD不过加个 abs 就行了 →having min(abs(score)) != 0
作者: HankJiang (没人要的呆江)   2015-07-21 17:23:00
其实有负分也还是一样阿~题目条件是没有任一小题是0分负分一样不是0分

Links booklink

Contact Us: admin [ a t ] ucptt.com