JW_CL 班级信息JW_CLname JW_CLcolcode
中文1班 2001
中文2班 2002
英语1班 2003
英语2班 2004
……JW_SUB 科目信息表JW_SUBname JW_SUBcode
高等数学 5001
大学英语 5002
大学体育 5003
……JW_TH 教师信息表JW_THname JW_THcode JW_SUBcode JW_CLcolcode
张老师 8001 5001 2001
李老师 8002 5002 2001
……JW_ST 学生信息表JW_STname JW_STnum JW_CLcolcode
张三 2007001001 2001
李四 2007001002 2001
王五 2007001002 2002
……
需要用这几个表向一个表里联合写入数据
JS_CJ 下发成绩表
JW_RESstnum JW_RESstname JW_REScj JW_RESsubcode JW_RESclcode JW_RESthcode
2007001001 张三 0(成绩默认) 5001 2001 8001
2007001002 李四 0 5001 2001 8001
2007001002 李四 0 5002 2001 8002
2007001001 张三 0 5002 2001 8002
……其实就是用四个表往一个表里写数据
比如:
生成中文一班(2001),张老师(8001),科目为高等数学(5001)所有学生的数据表,发到下面给系里的秘书填了上报.
不知道我叙述清楚了没有...有高手会写这样的存储过程么
把代号的部分都用变量来表示.
中文1班 2001
中文2班 2002
英语1班 2003
英语2班 2004
……JW_SUB 科目信息表JW_SUBname JW_SUBcode
高等数学 5001
大学英语 5002
大学体育 5003
……JW_TH 教师信息表JW_THname JW_THcode JW_SUBcode JW_CLcolcode
张老师 8001 5001 2001
李老师 8002 5002 2001
……JW_ST 学生信息表JW_STname JW_STnum JW_CLcolcode
张三 2007001001 2001
李四 2007001002 2001
王五 2007001002 2002
……
需要用这几个表向一个表里联合写入数据
JS_CJ 下发成绩表
JW_RESstnum JW_RESstname JW_REScj JW_RESsubcode JW_RESclcode JW_RESthcode
2007001001 张三 0(成绩默认) 5001 2001 8001
2007001002 李四 0 5001 2001 8001
2007001002 李四 0 5002 2001 8002
2007001001 张三 0 5002 2001 8002
……其实就是用四个表往一个表里写数据
比如:
生成中文一班(2001),张老师(8001),科目为高等数学(5001)所有学生的数据表,发到下面给系里的秘书填了上报.
不知道我叙述清楚了没有...有高手会写这样的存储过程么
把代号的部分都用变量来表示.
2007001001 张三 0(成绩默认) 5001 2001 8001
2007001002 李四 0 5001 2001 8001
2007001002 李四 0 5002 2001 8002
2007001001 张三 0 5002 2001 8002这个就是结果了,用4个表联合写入JS_CJ表里面添加这样的数据
生成中文一班(2001),张老师(8001),科目为高等数学(5001)所有学生的数据表,发到下面给系里的秘书填了上报.
主要确认的字段是 先查询教师表,然后对应的班级代号和科目代号,然后在联合在JS_sj表里添加这样的数据,成绩默认是0,这里不管他,空都可以.反正是让他们填的
create table #JW_CL(JW_CLname varchar(20),JW_CLcolcode varchar(20))
insert #JW_CL(JW_CLname,JW_CLcolcode)
select '中文1班','2001' union all
select '中文2班','2002' union all
select '英语1班','2003' union all
select '英语2班','2004'create table #JW_SUB(JW_SUBname varchar(20),JW_SUBcode varchar(20))
insert #JW_SUB(JW_SUBname,JW_SUBcode)
select '高等数学','5001' union all
select '大学英语','5002' union all
select '大学体育','5003'create table #JW_TH(JW_THname varchar(20),JW_THcode varchar(20),JW_SUBcode varchar(20),JW_CLcolcode varchar(20))
insert #JW_TH(JW_THname,JW_THcode,JW_SUBcode,JW_CLcolcode)
select '张老师','8001','5001','2001' union all
select '李老师','8002','5002','2001'create table #JW_ST(JW_STname varchar(20),JW_STnum varchar(20),JW_CLcolcode varchar(20))
insert #JW_ST(JW_STname,JW_STnum,JW_CLcolcode)
select '张三','2007001001','2001' union all
select '李四','2007001002','2001' union all
select '王五','2007001002','2002'--求解过程
select _st.JW_STnum,_st.JW_STname,0 as point,_su.JW_SUBname,_cl.JW_CLname,_th.JW_THname
from #JW_ST _st
join #JW_TH _th on _th.JW_CLcolcode = _st.JW_CLcolcode
join #JW_CL _cl on _cl.JW_CLcolcode = _th.JW_CLcolcode
join #JW_SUB _su on _su.JW_SUBcode = _th.JW_SUBcode--删除测试环境
drop table #JW_CL,#JW_SUB,#JW_TH,#JW_ST/*--测试结果
JW_STnum JW_STname point JW_SUBname JW_CLname JW_THname
-------------------- -------------------- ----------- -------------------- -------------------- --------------------
2007001002 李四 0 大学英语 中文1班 李老师
2007001001 张三 0 高等数学 中文1班 张老师
2007001002 李四 0 高等数学 中文1班 张老师
2007001001 张三 0 大学英语 中文1班 李老师(所影响的行数为 4 行)
*/
我要的是向JS_CJ 表里写入数据..不是这个意思
-----------
那就這麼寫Insert JS_CJ
Select
A.JW_STnum,
A.JW_STname,
0 As JW_REScj,
D.JW_SUBcode,
C.JW_CLcolcode,
B.JW_THcode
From JW_ST A
Inner Join JW_TH B on B.JW_CLcolcode = A.JW_CLcolcode
Inner Join JW_CL C on C.JW_CLcolcode = B.JW_CLcolcode
Inner Join JW_SUB D on D.JW_SUBcode = B.JW_SUBcode
(JW_STnum, JW_STname, JW_REScj, JW_SUBcode, JW_CLcolcode, JW_THcode)
Select
A.JW_STnum,
A.JW_STname,
0 As JW_REScj,
D.JW_SUBcode,
C.JW_CLcolcode,
B.JW_THcode
From JW_ST A
Inner Join JW_TH B on B.JW_CLcolcode = A.JW_CLcolcode
Inner Join JW_CL C on C.JW_CLcolcode = B.JW_CLcolcode
Inner Join JW_SUB D on D.JW_SUBcode = B.JW_SUBcode