作者yuchia69 (最爱 梁静茹 ^^)
看板Database
标题[SQL ] 关於子查询的用法
时间Sun Nov 1 23:05:58 2009
我用SQL2000 SP4
我要把课码A00中最低分加到60
其他人依最低分所加的分数加分
(例外: 分数破100 最低分>60 都不管 )
EX: 最低分42分 也就是全班加18分
目前我的作法是用2句 (先找出最低分 然後全部加分)
select min(成绩) from class where 课码='A00'
select 成绩+(60-最低分) from class where 课码='A00'
如果要把上面2句合并 应该就要用到子查询
但是 最低分 我用 min(成绩) 或用 第一句 都会产生语法错误
"资料行 'class.成绩' 在选取清单中无效,
因为它并未包含在汇总函数或 GROUP BY 子句中。"
可是依他的提示用group by 能用的只有 成绩 或 课码 或 学号
答案都不是正确 (有group到学号+课码时 min(成绩)=成绩 )
--用推文有限制 用编辑来回好了--
因为在程式上 我用"group by 课码" 把每科的最低分都拿回来
但是用 where 课码='A00' 的确是正常
这边应该没办法分别对每科成绩同时做计算 只能利用where来分别对每科计算
如果有能同时计算的方式 希望各位大大能分享 感谢 ^^
另外 栏位名是英文 用中文只是版上方便阅读!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.112.62
1F:→ yuchia69:所以用子查询要如何合并 或是用其他方法可以做出? 11/01 23:20
2F:→ grence:如果栏位名称是中文,栏位用[]括起来试试 min([成绩]) 11/02 00:04
3F:→ Antzzz:可以写一下怎麽用的吗?应该直接将第一句塞进第二句即可 11/02 01:13
4F:→ yuchia69:感谢回答 我知道我错哪边了 第一句放进去就解出 冏 11/02 10:01
※ 编辑: yuchia69 来自: 140.118.99.140 (11/02 11:33)