在线等,请教一个简单的问题。
declare @sql varchar(8000)
set @sql = 'select 姓名 '
select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']'
from (select distinct 课程 from tb) as a
set @sql = @sql + ' from tb group by 姓名'
exec(@sql)
引号好像有问题。
在Delphi中如何把上面SQL语句加入到程序中。
我的处理:
s:='select 姓名 ';
s:= s + ', sum(case 课程 when '' + 课程 + '' then 分数 else 0 end) ['' + 课程 + ''] FROM (SELECT DISTINCT 课程 FROM tb) AS a';
s:= s + ' from tb group by 姓名';
程序能运行,但是提示提出,应该加入几个引号。谢谢!
[解决办法]
组合sql有问题。你要理解那个SQL的作用,然后再组合。
- SQL code
sum(case hpmc when ''+ hpmc +'' then sl else 0 end) [hpmc] FROM (SELECT DISTINCT hpmc FROM kc)