参考:是这个意思吗?create table #(a varchar(100),b int)
insert # values('aa',11)
insert # values('bb',1)
insert # values('aa',45)
insert # values('cc',81)
insert # values('a',11)
insert # values('aay',561)
insert # values('a',14)declare @sql varchar(8000)
set @sql = 'select '
select @sql = @sql + 'sum(case a when '''+a+''' 
                          then b else 0 end) '+a+'的数量,'
  from (select distinct a from #) as aselect @sql = left(@sql,len(@sql)-1) + ' from #'exec(@sql)drop table #

解决方案 »

  1.   

    我的意见是:
    select sum(期初数量),sum(本期收入),sum(本期发出),物料,分组字段1,分组字段2
    group by 物料,分组字段1,分组字段21、其中分组字段个数不限,要求能够按选择的字段自动产生上面的这条SQL语名
    2、分组字段这些信息包含在物料属性中,我一个想法就是建立一张表来通过定义能够被选择分组的字段,对应物料表中的某个字段,然后产生此语句。
    想请大家帮忙看看!
      

  2.   

    在MS OLAP Service教程中详细提到如何进行统计分析的功能。
    你可以借鉴一下。
    例如你可以创建一个表个,包含物料,分组字段1,分组字段2
    字段,然后插入字段所有可能的取值,然后创建触发器,在触发器
    中进行计算并更新统计信息,
    然后直接查询统计表就可以了。仅供参考,祝你好运开心就好!!!
      

  3.   

    楼上的你可以将此资料发到[email protected]中吗?
      

  4.   

    按如下进行即可了:呵呵呵!!!
    select 字段1 as 字段1名称,字段2 as 字段2名称,...,sum(字段4) as 字段4名称,sum(字段5) as 字段5名称,...from 表名 where 条件 group by 字段1,字段2,字段3,...(不用求sum的所有字段名)
      

  5.   

    用外联接就可以了.
    select 表.字段....表2.字段名 from 表...where....