日期:2014-05-17  浏览次数:20535 次

sql server update 的一点问题:根据相应列的元素大小改变对应列的值
平台:sql server 2000
问题描述:
-- 根据学生选课的人数修改教材选用的数量,数量为学生人数加 2
其中学生表与教材选用表分开,只需提供一般化的方法就可以了,或者给个怎么做的方向就行!

谢谢!!!!
sql

------解决方案--------------------
三个表,学生表,选课表,教材表。
在选课表上添加触发器,添加或者删除选课记录时,更新教材表中数量。

------解决方案--------------------
更准确来说,班级、课程这两个表都应该加上去,然后关联获取学生的选课信息。必修课的选课信息应该先到班,除非是选修课
------解决方案--------------------
你现在是有 学生表、教材选用表,应该还的加上 学生选课表,这个表里存的是学生和课程的对应关系,

另外,还需要一个表就是 教材课程表,里面存储了教材和课程的对应关系,写个大概的update语句:


update 教材选用表
set 数量 = (select count(c.学生) * 2
           from 课程教材表 b
           inner join 学生选课表 c
                   on b.课程 = c.课程
           where  教材选用表.教材 = b.教材
           )
           

------解决方案--------------------
引用:
Quote: 引用:

你现在是有 学生表、教材选用表,应该还的加上 学生选课表,这个表里存的是学生和课程的对应关系,

另外,还需要一个表就是 教材课程表,里面存储了教材和课程的对应关系,写个大概的update语句:


update 教材选用表
set 数量 = (select count(c.学生) * 2
           from 课程教材表 b
           inner join 学生选课表 c
                   on b.课程 = c.课程
           where  教材选用表.教材 = b.教材
           )
           

本人菜鸟,不太看得懂,可以解释一下吗?
现在有表:
Course(Cno,Cname,Bno)
Books (Bno,Bname,Bcount) --Bnumber 表示教材购买数量
Student(Sno,Cno)         --学生选课表
请问针对上述表,SQL语句应该是怎样的呢?谢谢!
               


这样,试试:
update Books
set Bcount = (select count(c.Sno) * 2
              from Course b
              inner join Student c
                     on b.Cno = c.Cno
             &n