34,576
社区成员
发帖
与我相关
我的任务
分享
--楼主试试这样:
create proc os_t
@教师 varchar(10),
@星期 varchar(10)
as
select a.*,b.星期,b.节次 into #t from t1 a,t2 b where a.年级=b.年级 and a.班级=b.班级 and a.科目=b.科目
and a.教师=@教师 and b.星期=@星期
declare @sql1 varchar(8000)
set @sql1='select ''节次''[科目]'
select @sql1=@sql1+',['+科目+']=max(case 科目+节次 when '''+科目+节次+''' then 年级+班级+节次 else '''' end)' from #t
set @sql1=@sql1+' from #t'
exec(@sql1)
go
exec os_t '张三','星期六'
--结果:
科目 语文 语文 美术
节次 初一1班第3节 初一1班第4节 初一2班第6节
--楼主,刚才我的存储过程有什么问题吗?
create table t1(年级 varchar(10),班级 varchar(10),科目 varchar(10),教师 varchar(10))
insert into t1 select '初一','1班','语文','张三'
insert into t1 select '初一','1班','数学','李四'
insert into t1 select '初一','1班','英语','王五'
insert into t1 select '初一','2班','美术','张三'
create table t2(年级 varchar(10),班级 varchar(10),星期 varchar(10),节次 varchar(10),科目 varchar(10))
insert into t2 select '初一','1班','星期一','第3节','语文'
insert into t2 select '初一','1班','星期一','第1节','数学'
insert into t2 select '初一','1班','星期三','第2节','美术'
insert into t2 select '初一','2班','星期一','第6节','美术'
INSERT INTO [T2]
SELECT '初一','1班','星期六','第3节','语文' UNION ALL
SELECT '初一','1班','星期六','第4节','语文' UNION ALL
SELECT '初一','1班','星期一','第1节','数学' UNION ALL
SELECT '初一','1班','星期三','第2节','美术' UNION ALL
SELECT '初一','2班','星期六','第6节','美术'
alter proc os_t
@教师 varchar(10),
@星期 varchar(10)
as
select a.*,b.星期,b.节次 into #t from t1 a,t2 b where a.年级=b.年级 and a.班级=b.班级 and a.科目=b.科目
and a.教师=@教师 and b.星期=@星期
declare @sql1 varchar(8000)
set @sql1='select ''节次''[科目]'
select @sql1=@sql1+',['+科目+']=max(case 科目 when '''+科目+''' then 年级+班级+节次 else '''' end)' from #t
set @sql1=@sql1+' from #t'
exec(@sql1)
go
exec os_t '张三','星期一'