level 2
USE [YCTU_15_教材]
GO
/****** Object: StoredProcedure [dbo].[P_B_生成学生教材总表] Script Date: 04/07/2016 09:31:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[P_B_生成学生教材总表]
AS
BEGIN
SET NOCOUNT ON;
delete from [YCTU_15_教材].[dbo].[T08_学生教材总表]
insert into [YCTU_15_教材].[dbo].[T08_学生教材总表]
(选课课号,学号,姓名,教材本次)
select XKKH,XH,XM,'1' FROM [YCTU_15_教材].[dbo].[ZFXFZB_XSXKBN]
insert into [YCTU_15_教材].[dbo].[T08_学生教材总表]
(选课课号,学号,姓名,教材本次)
select XKKH,XH,XM,'2' FROM [YCTU_15_教材].[dbo].[ZFXFZB_XSXKBN]
where XKKH in (select 选课课号 from [YCTU_15_教材].[dbo].[T03_教材征订_开课学院]
where 教材本次='2')
insert into [YCTU_15_教材].[dbo].[T08_学生教材总表]
(选课课号,学号,姓名,教材本次)
select XKKH,XH,XM,'3' FROM [YCTU_15_教材].[dbo].[ZFXFZB_XSXKBN]
where XKKH in (select 选课课号 from [YCTU_15_教材].[dbo].[T03_教材征订_开课学院]
where 教材本次='3')
insert into [YCTU_15_教材].[dbo].[T08_学生教材总表]
(选课课号,学号,姓名,教材本次)
select XKKH,XH,XM,'4' FROM [YCTU_15_教材].[dbo].[ZFXFZB_XSXKBN]
where XKKH in (select 选课课号 from [YCTU_15_教材].[dbo].[T03_教材征订_开课学院]
where 教材本次='4')
insert into [YCTU_15_教材].[dbo].[T08_学生教材总表]
(选课课号,学号,姓名,教材本次)
select XKKH,XH,XM,'5' FROM [YCTU_15_教材].[dbo].[ZFXFZB_XSXKBN]
where XKKH in (select 选课课号 from [YCTU_15_教材].[dbo].[T03_教材征订_开课学院]
where 教材本次='5')
--列出学生选课名单为0的课程
if OBJECT_ID('[YCTU_15_教材].[dbo].[T09_教材发放清单_未排课]') is not null
drop table [YCTU_15_教材].[dbo].[T09_教材发放清单_未排课]
SELECT 供应商,校区,学生学院,教学班+',' as 教学班,课程名称,教材名称,学生用书数量
,出版社,作者,教材ISBN,任课教师工号,任课教师
,开课学院,选课课号,教材本次
into [YCTU_15_教材].[dbo].[T09_教材发放清单_未排课]
FROM [YCTU_15_教材].[dbo].[T03_教材征订_开课学院]
where 选课课号 not in (select xkkh from [YCTU_15_教材].[dbo].[ZFXFZB_XSXKBN] group by XKKH)
and 教材分类<>'无教材' and 已征订='是'
--处理学生选课名单为0的课程
if OBJECT_ID('[YCTU_15_教材].[dbo].[T09_教材发放清单_未排课1]') is not null
drop table [YCTU_15_教材].[dbo].[T09_教材发放清单_未排课1]
select top 1 *
into [YCTU_15_教材].[dbo].[T09_教材发放清单_未排课1]
from [YCTU_15_教材].[dbo].[T09_教材发放清单_未排课]
delete from [YCTU_15_教材].[dbo].[T09_教材发放清单_未排课1]
declare @XKKH nvarchar(50),@JCBC nvarchar(50),@JXB nvarchar(50),@JXB1 nvarchar(50)
,@BJ nvarchar(50),@n int
DECLARE YB CURSOR FOR SELECT 选课课号,教材本次,教学班 FROM [YCTU_15_教材].[dbo].[T09_教材发放清单_未排课]
OPEN YB
fetch next from YB into @XKKH,@JCBC,@JXB
while @@fetch_status<>-1
begin --逐条处理
--取教学班的下一个班,如果有则往[T09_教材发放清单_未排课1]中插入该班记录
set @JXB1=@JXB
set @n=CHARINDEX(',', @JXB1)
while @n>0
begin
set @BJ=SUBSTRING(@JXB1,1,@n-1)
--取到的名称可能是班级简称,查询获取全称
select @BJ=行政班 from [YCTU_00_基础数据].[dbo].[T06_行政班] where 行政班=@BJ or 行政班简称=@BJ
insert into [YCTU_15_教材].[dbo].[T09_教材发放清单_未排课1]
(选课课号,教材本次,教学班) values (@XKKH,@JCBC,@BJ) --插入该班记录
/*根据未排课课程,生成学生选课信息,插入[YCTU_15_教材].[dbo].[T08_学生教材总表]*/
insert into [YCTU_15_教材].[dbo].[T08_学生教材总表]
(行政班,学号,姓名,教材本次,选课课号)
select 行政班,学号,姓名,@JCBC,@XKKH
from [YCTU_03_学生].[dbo].[T02_学生_教务系统]
where 行政班=@BJ and 是否在校='是'
set @JXB1=SUBSTRING(@JXB1,@n+1,LEN(@JXB1)-@n)
set @n=CHARINDEX(',', @JXB1)
end
fetch next from YB into @XKKH,@JCBC,@JXB
end
close YB
deallocate YB
update [YCTU_15_教材].[dbo].[T09_教材发放清单_未排课1]
set 供应商=b.供应商,课程名称=b.课程名称
,教材名称=b.教材名称,出版社=b.出版社,作者=b.作者,教材ISBN=b.教材ISBN
,任课教师工号=b.任课教师工号,任课教师=b.任课教师,开课学院=b.开课学院
from [YCTU_15_教材].[dbo].[T09_教材发放清单_未排课1] a join [YCTU_15_教材].[dbo].[T09_教材发放清单_未排课] b
on a.选课课号=b.选课课号 and a.教材本次=b.教材本次
where a.供应商 is null
update [YCTU_15_教材].[dbo].[T09_教材发放清单_未排课1]
set 教学班=b.行政班
from [YCTU_15_教材].[dbo].[T09_教材发放清单_未排课1] a join [YCTU_00_基础数据].[dbo].[T06_行政班] b
on a.教学班=b.行政班简称
update [YCTU_15_教材].[dbo].[T09_教材发放清单_未排课1]
set 学生用书数量=b.总人数,学生学院=b.教学学院,校区=b.校区
from [YCTU_15_教材].[dbo].[T09_教材发放清单_未排课1] a join [YCTU_00_基础数据].[dbo].[T06_行政班] b
on a.教学班=b.行政班
update [YCTU_15_教材].[dbo].[T08_学生教材总表]
set 行政班=b.行政班
from [YCTU_15_教材].[dbo].[T08_学生教材总表] a join [YCTU_03_学生].[dbo].[T02_学生_教务系统] b
on a.学号=b.学号
delete from [YCTU_15_教材].[dbo].[T08_学生教材总表]
where 学号 not in (select 学号 from [YCTU_03_学生].[dbo].[T02_学生_教务系统] where 是否在校='是')
update [YCTU_15_教材].[dbo].[T08_学生教材总表]
set 校区=b.校区,学生学院=b.教学学院
from [YCTU_15_教材].[dbo].[T08_学生教材总表] a join [YCTU_00_基础数据].[dbo].[T06_行政班] b
on a.行政班=b.行政班
update [YCTU_15_教材].[dbo].[T08_学生教材总表]
set 供应商=b.供应商,课程名称=b.课程名称,教材分类=b.教材分类,教材名称=b.教材名称,
教材ISBN=b.教材ISBN,开课学院=b.开课学院,任课教师=b.任课教师,任课教师工号=b.任课教师工号,
出版社=b.出版社,作者=b.作者,课程类别=b.课程类别
from [YCTU_15_教材].[dbo].[T08_学生教材总表] a join [YCTU_15_教材].[dbo].[T03_教材征订_开课学院] b
on a.选课课号=b.选课课号 and a.教材本次=b.教材本次
END
2016年04月21日 14点04分