一个SQL查询??

xq1981 2010-06-23 10:55:19
为管理业务培训信息,建立了三个表:
S(S#,SN,SD,SG,SA)S#,SN,SD,SA,SG,SY分别代表学号,学员姓名,所属单位,学员年龄,薪资,进厂日期
C(C#,CN)C#,CN分别代表课程编号,课程名称
SC(S#,C#,G)S#,C#,G分别代表学号,所选的课程编号,学习成绩
查询为课程超过4门,平均成绩高于95分且单科成绩不低于90的员工的薪资加(现有薪资的)5%????
...全文
86 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dreamloster 2010-06-23
  • 打赏
  • 举报
回复

UPDATE S SET SA=SA*1.05 WHERE S# IN
(
SELECT S# FROM SC WHERE G>=90 GROUP BY S# HAVING AVG(G)>=95 AND COUNT(C#)>=4
)
small_agile 2010-06-23
  • 打赏
  • 举报
回复
UPDATE S SET SG=SG+SG*0.05 FROM STUDENT,COURSE,SC WHERE STUDENT.S# = SC.S# AND SC.C# = COURSE.C# AND STUDENT.S# IN(SELECT S# FROM SC GROUP BY S# HAVING COUNT(*)>4)
AND STUDENT.S# IN (SELECT S# FROM SC GROUP BY S# HAVING AVG(SCORE)>30) AND NOT EXISTS (SELECT * FROM COURSE WHERE SCORE<90)


上面的是我在另外一張表裡的測試程序,改改字段就可以了!!
small_agile 2010-06-23
  • 打赏
  • 举报
回复
UPDATE STUDENT SET SNAME = 'S' FROM STUDENT,COURSE,SC WHERE STUDENT.S# = SC.S# AND SC.C# = COURSE.C# AND STUDENT.S# IN(SELECT S# FROM SC GROUP BY S# HAVING COUNT(*)>4)
AND STUDENT.S# IN (SELECT S# FROM SC GROUP BY S# HAVING AVG(SCORE)>30) AND NOT EXISTS (SELECT * FROM COURSE WHERE SCORE<90)


我也不知道行不行,請高手檢查檢查!!多多指教.
small_agile 2010-06-23
  • 打赏
  • 举报
回复
UPDATE STUDENT SET SNAME = 'S' FROM STUDENT,COURSE,SC WHERE STUDENT.S# = SC.S# AND SC.C# = COURSE.C# AND STUDENT.S# IN(SELECT S# FROM SC GROUP BY S# HAVING COUNT(*)>4)
AND STUDENT.S# IN (SELECT S# FROM SC GROUP BY S# HAVING AVG(SCORE)>30) AND NOT EXISTS (SELECT * FROM COURSE WHERE SCORE<90)
WHERE SCORE<90)
rmljoe 2010-06-23
  • 打赏
  • 举报
回复
select s#,sn,sg,sg*1.05 newsg
from s
where
s# in (select s# from sc group by s# having count(1) > 4 and avg(G) > 95) -- 超4门,平均成绩高于95
and
not exists(select 1 from sc where sc.s# = s.s# and g < 90) -- 单科成绩不低于90
Mr_Nice 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sanshenshi 的回复:]

http://topic.csdn.net/u/20100517/17/b2ab9d5e-73a2-4f54-a7ec-40a5eabd8621.html?99102
可以参考下上面这个
[/Quote]

up
user_xj 2010-06-23
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 dreamloster 的回复:]
SQL code

UPDATE S SET SA=SA*1.05 WHERE S# IN
(
SELECT S# FROM SC WHERE G>=90 GROUP BY S# HAVING AVG(G)>=95 AND COUNT(C#)>=4
)
[/Quote]
上面的的不错!
看了半天 也不晓得LZ要的结果是查询还是修改~~
xq1981 2010-06-23
  • 打赏
  • 举报
回复
谢谢各位,散分啦!

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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