有table表A,其数据结构是动态的,但可以肯定其中至少有a、b、c、d四个字段。其他的字段来自另一个动态表B,数据类型为数值型。也就是只能肯定其中的四个字段 ,其他有几个字段并不清楚。可能是6个也可能是7个。
问题是想查询表A,显示其中所有的字段,并对除a、b、c、d四个字段外的不确定字段进行合计统计。我试着先对B表进行统计,从而知道不确定的字段是哪些。然后再对A表进行合计统计。不知能不能实现这种查询?

解决方案 »

  1.   

    --当然可以啦。
    --思路:从表B里取出所有的字段并形成SQL语句,然后再用sp_executesql来执行该SQL语句declare @sqlstr nvarchar(1000)
    declare @fieldstr varchar(20)--字义游标
    declare cur_field cursor for
    select 字段名 from 表Bopen cur_fieldfetch next from cur_field into @fieldstr
    set @sqlstr=''
    WHILE @@FETCH_STATUS = 0
    BEGIN
    set @sqlstr=@sqlstr+' sum('+@fieldstr+') as '+@fieldstr+','
    fetch next from cur_field into @fieldstr
    ENDclose cur_field
    DEALLOCATE cur_fieldset set @sqlstr=left(@sqlstr,len(@sqlstr)-1)
    set @sqlstr='select '+@sqlstr+' from 表A'
    --输出SQL语句
    print @cSqlStr
    --执行SQL语句
    exec sp_executesql @cSqlStr--这是我蒙着写的,你看能否运行,我想应该没有问题的吧。