style里面不同的相固定吗?
如果不固定好像一句写不了吧

解决方案 »

  1.   

    --测试数据
    create table tab(style int,data float(5))
    insert tab values(1,4)
    insert tab values(1,5)
    insert tab values(1,6)
    insert tab values(3,2)
    insert tab values(4,6)
    insert tab values(3,4)
    insert tab values(3,7)
    insert tab values(4,5)
    godeclare @sql varchar(8000)
    select @sql='select 'select @sql=@sql+ '(select min(data) from tab where style=''' + rtrim(b.style) + ''') as ''' + rtrim(b.style) +'max'+''','
     + '(select avg(data) from tab where style=''' + rtrim(b.style) + ''') as ''' + rtrim(b.style) +'avg'+''',' 
    from (select distinct style from tab) bset @sql=substring(@sql,1,len(@sql)-1)
    exec(@sql)--结果1max  1avg  3max  3avg   4max 4avg                                                  
    ----  ----- ----- ----- ---- -------
    4.0    5.0   2.0  4.333  5.0  5.5