select a.StuSn,a.StuName,a.StuClass,b.总分,c.主观分,d.客观分,e.*,f.* from(
(。) as a
left join
(。) as b
on a.StuSn=b.StuSn
left join
(。) as c
on a.StuSn=c.StuSn
left join
() as d
on a.StuSn=d.StuSn
left join
(select * from zhuguan) as e
on a.StuSn=e.StuSn
left join
(select * from keguan) as f
on a.StuSn=f.StuSn
)
因为我这个e 表 和 f表中的列是不固定的,所以我想让总的列中只有一个 StuSn,请问如何去掉e.StuSn和f.StuSn
求高手
(。) as a
left join
(。) as b
on a.StuSn=b.StuSn
left join
(。) as c
on a.StuSn=c.StuSn
left join
() as d
on a.StuSn=d.StuSn
left join
(select * from zhuguan) as e
on a.StuSn=e.StuSn
left join
(select * from keguan) as f
on a.StuSn=f.StuSn
)
因为我这个e 表 和 f表中的列是不固定的,所以我想让总的列中只有一个 StuSn,请问如何去掉e.StuSn和f.StuSn
求高手
select case iType
case 1
strSql += "e.Col1,"
case 2
strSql += "e.Col2,"
....
end select
e表列头:StuSn,1,2,3,4,5,6,..........
f表列头:StuSn,第二题,第三题.........
很明显啊。你select a.StuSn,这里先显示出来了一个,
然后你e.*,f.* ,你这里又多显示了两个。
在上面select的时候,后面别用 e.* ,f.*把e和f表里面的字段一个一个写出来,但是不要写StuSn你这两个表里面应该都有StuSn字段,别用 * ,直接写字段名
你写e.*,f.*多了两个,想去掉,但是,是去不掉的所以只能不要写e.*,f.*,一个字段一个字段写出来
字段不固定,有时多有时少,就在程序里判断,判断有多少字段select 后面就带多少个字段
declare @Sql varchar(8000)
set @Sql =''select * into zhuguan from(select StuSn ''
select @Sql = @Sql + '' , max(case QuestNo_Point when '''''' + QuestNo_Point + '''''' then StuAnswer else 0 end) ['' + QuestNo_Point + '']''
from (select distinct QuestNo_Point from '+@table1+') as a
set @Sql = @Sql + '' from [DB_Exam_'+@ProSn+'].[dbo].[TotalScore] group by StuSn) as xy ''
exec(@Sql)
')列名不固定在这,这是生成的e表
其中我的列名就是QuestNo_Point的所有值,不知道如何获取