declare @sql varchar(8000)
set @sql = 'select a.id,a.name,a.code'
select @sql = @sql + ',sum(case b.c_code when '''+code+''' then b.Value else 0 end) ['+code+']' from Class
select @sql = @sql+' from Depart a,Value b where a.Code=b.d_Code group by a.id,a.code,a.name'print @sqlexec(@sql)
go看print的结果。

解决方案 »

  1.   

    我看到结果。但不明白select @sql = @sql + ',sum(case b.c_code when '''+code+''' then b.Value else 0 end) ['+code+']' from Class的意思.
      

  2.   

    declare @sql varchar(8000)--定義字符變量@sql
    set @sql = 'select a.id,a.name,a.code'--給變量@sql賦值
    select @sql = @sql + ',sum(case b.c_code when '''+code+''' then b.Value else 0 end) ['+code+']' from Class --取出Class表中值賦給@sql生產SQL語句
    select @sql = @sql+' from Depart a,Value b where a.Code=b.d_Code group by a.id,a.code,a.name'--取出Depart a,Value b表中值賦給@sql生產SQL語句exec(@sql)--執行@sql串里的SQL語句
    go
      

  3.   

    case b.c_code when '''+code+''' then b.Value else 0 end
    这句话是什么意思呢?因为我是初学者呀。
      

  4.   

    具休又说就是这个不明白:'''+code+'''
      

  5.   

    就是如果b.c_code等于code的值则显示b.value,若不是则显示0