如何将下面长的语句加入ADOQuery中,用
with ADOQuery1 do
begin
SQL.Text:='.......';
OPen;
end;就是这些语句
declare @sql varchar(8000)
set @sql = 'select 学号,姓名,班级,学期'
select @sql = @sql + ',max(case 科目名称
when '''+科目名称+''' then cast(成绩 as varchar(10)) end) ['+科目名称+']
,max(case 科目名称 when '''+科目名称+''' then cast(补考 as varchar(10)) end) ['+科目名称+'补考]'
from (select distinct 科目名称 from 成绩表 where 班级='2000电算会计') as a
select @sql=@sql+' from 成绩表 where 班级=''2000电算会计'' and 学期=1 group by 学号,姓名,班级,学期'
exec(@sql)
with ADOQuery1 do
begin
SQL.Text:='.......';
OPen;
end;就是这些语句
declare @sql varchar(8000)
set @sql = 'select 学号,姓名,班级,学期'
select @sql = @sql + ',max(case 科目名称
when '''+科目名称+''' then cast(成绩 as varchar(10)) end) ['+科目名称+']
,max(case 科目名称 when '''+科目名称+''' then cast(补考 as varchar(10)) end) ['+科目名称+'补考]'
from (select distinct 科目名称 from 成绩表 where 班级='2000电算会计') as a
select @sql=@sql+' from 成绩表 where 班级=''2000电算会计'' and 学期=1 group by 学号,姓名,班级,学期'
exec(@sql)
你可以先用ADOQuery生成存储过程,
然后在ADOStoredProc1如何
用adoquery的确比较麻烦,因为你要用循环,楼上说得不错,用存储过程吧
create proc urporc(
@name varchar(100)
) asdeclare @sql varchar(8000)
set @sql = 'select 学号,姓名,班级,学期'
select @sql = @sql + ',max(case 科目名称
when '''+科目名称+''' then cast(成绩 as varchar(10)) end) ['+科目名称+']
,max(case 科目名称 when '''+科目名称+''' then cast(补考 as varchar(10)) end) ['+科目名称+'补考]'
from (select distinct 科目名称 from 成绩表 where 班级=@name) as a select @sql=@sql+' from 成绩表 where 班级='''+ @name+''' and 学期=1 group by 学号,姓名,班级,学期'
exec(@sql)
return程序中
with ADOQuery1 do
begin
SQL.Add('exec urporc ''' + '2000电算会计' + '''' );
OPen;
end;