SQL语句:使用了union all后怎么分组排序

表在数据库结构如下:

代码:
declare @sql1 varchar(max)
set @sql1 = 'select certkey as ' + '公司名'
select @sql1 = @sql1 + ' , max(case hs_sortname when ''' + hs_sortname + ''' then weight else 0 end) [' + hs_sortname + ']'
from (select distinct hs_sortname from Sum1_View) as a
set @sql1 = @sql1 + ' ,sum(weight) 总计 from Sum1_View group by certkey'
declare @sql varchar(max)
set @sql = 'select certkey as ' + '公司名'
select @sql = @sql + ' , max(case hs_sortname when ''' + hs_sortname + ''' then usebox else 0 end) [' + hs_sortname + ']'
from (select distinct hs_sortname from Sum1_View) as a
set @sql = @sql + ' ,sum(usebox) 总计 from Sum1_View group by certkey'
set @sql = @sql1 + ' UNION ALL ' + @sql
exec(@sql)
结果如下:

问题:求sql语句实现公司名,分组排序
就按照公司名排序也可以啊!!

第1个回答  2014-05-20

用子查询就能实现了

给你举个例子吧,要实现的功能你自己改

select a,b,c from (
    select a, b, c from aa
    union all 
    select a1 as a, b1 as b, c1 as c from bb
) a group by c

追问

有声明的怎么写?不太会

追答

和原来的一样,只是在原来的查询语句外面包上一层就可以了

追问

还是不太懂,举个例子啊

相似回答