注册 登录
编程论坛 SQL Server论坛

一SQL题

gpt0407 发布于 2010-04-16 22:34, 671 次点击
Major 表
----------------------------------------------------------
majorID majorName majorDesc deptId
----------------------------------------------------------
M1 计算机应用技术 略 D1
2
M2 计算机软件技术 略 D1
M3 自动控制 略 D2
M4 电路与系统 略 D3
Class 表
----------------------------------------------------------
classId majorId enterYear
----------------------------------------------------------
C1 M1 2007
C2 M1 2008
C3 M2 2007
C4 M2 2008
C5 M3 2007
(1) 在Major 表中增加列classCount,使用INT 型,该列的值不允许为空,
默认值为0
(提示:使用ALTER TABLE 语句)
(2) 更新Major 表,使Major 表中所有专业的classCount 的值等于该专业中
包含的班级的数目
(提示:使用 UPDATE 语句)
第二个怎么编?
3 回复
#2
cnfarer2010-04-17 08:21
试下吧!(没测试过)
update major set a.classcount=b.cc from major a inner join (select b.majorid,count(*) cc from class group by 1) b on a.majorid=b.majorid
#3
gpt04072010-04-17 10:17
恩,俺按你的测试了下,结果改了下
update Major
set Major.classcount=cc
from Major Major inner join (select Major.majorid,count(*) cc
from Major,Class
WHERE Class.majorid=Major.majorid
group by Major.majorid)Class on Class.majorid=Major.majorid
这样就通过了。谢谢啦
#4
linhui102010-04-26 03:10
看看
1