1\
declare @sql varchar(8000)
select @sql= 'select distinct 准考证号 '
select @sql =@sql +',case when rtrim(主分类名称)+rtrim(二级分类名称)
= ''' + rtrim(主分类名称)+rtrim(二级分类名称) + '''
then 学校代号 else null end ' + rtrim(主分类名称)+rtrim(二级分类名称)
from (select distinct rtrim(主分类名称)+rtrim(二级分类名称) from 分类表) aaexec (@sql ' + from 分类表 a ,志愿表 b where 学校代号=代号 and
a.主分类=b.主分类 and a.二级分类=b.二级分类')
declare @sql varchar(8000)
select @sql= 'select distinct 准考证号 '
select @sql =@sql +',case when rtrim(主分类名称)+rtrim(二级分类名称)
= ''' + rtrim(主分类名称)+rtrim(二级分类名称) + '''
then 学校代号 else null end ' + rtrim(主分类名称)+rtrim(二级分类名称)
from (select distinct rtrim(主分类名称)+rtrim(二级分类名称) from 分类表) aaexec (@sql ' + from 分类表 a ,志愿表 b where 学校代号=代号 and
a.主分类=b.主分类 and a.二级分类=b.二级分类')
问题二中志愿顺序按:主分类+二级分类来排,比如123号报了两个志愿,分类号分别是1,2和2,1
则1,2的那个学校代号001就是第一个