非常复杂的的存储过程,高手们来研究这样能写么?
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)所有学生的数据表,发到下面给系里的秘书填了上报.
不知道我叙述清楚了没有...有高手会写这样的存储过程么
把代号的部分都用变量来表示.
------解决方案----------------------创建测试环境
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_CLcolc