declare @s varchar(8000)
set @s=''
select @s=@s+',max(case classID when '''+classID+''' then ''√'' else ''×'' end) '+class
from 表2exec('select max(Teacher)'+@s+ ' from 表1 group by TeacherID')
set @s=''
select @s=@s+',max(case classID when '''+classID+''' then ''√'' else ''×'' end) '+class
from 表2exec('select max(Teacher)'+@s+ ' from 表1 group by TeacherID')
create table classTab(ClassId int ,Class nvarchar(12))insert into teacherTab select '4','lying','4'
union all
select '2','李四','2'
union all
select '3','王五','3'insert into classTab select '4','物理'
union all
select '2','数学'
union all
select '3','英语'
union all
select '4','物理'declare @s varchar(8000)
set @s=''
select @s=@s+',max(case rtrim(classID) when '''+rtrim(classID)+''' then ''√'' else ''×'' end) '+class
from ClassTabexec('select max(Teacher) as '' '' '+@s+ ' from TeacherTab group by TeacherID')
create table teacherTab(TeacherID int ,Teacher nvarchar(12),ClassId int)
create table classTab(ClassId int ,Class nvarchar(12))insert into teacherTab select '4','lying','4'
union all
select '2','李四','2'
union all
select '3','王五','3'insert into classTab select '4','物理'
union all
select '2','数学'
union all
select '3','英语'
union all
select '4','物理'declare @s varchar(8000)
set @s=''
select @s=@s+',max(case rtrim(classID) when '''+rtrim(classID)+''' then ''√'' else ''×'' end) '+class
from ClassTab
group by class,classId
order by classIdprint @s
exec('select max(Teacher) as '' '' '+@s+ ' from TeacherTab group by TeacherID')
'Select
TeacherID
,Teacher'Select @SQL = @SQL + '
,(Case classID When ' + Cast(classID As varchar) +
'Then ''√'' Else ''×'' End) As ' + class
From csSet @SQL = @SQL +
'
From
T
Group By
TeacherID,Teacher,classID'
Exec(@SQL)