首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

深入交叉查询,该如何处理

2012-03-23 
深入交叉查询select@sql@sql+sum(caseStorewhen+Store+thenSaleNumelse0end)as+Store+,from(selectdistin

深入交叉查询
select   @sql   =   @sql   +   'sum(case   Store   when   ' ' '+Store+ ' ' '

                                                    then   SaleNum   else   0   end)   as   ' ' '+Store+ ' ' ', '

    from   (select   distinct   Store   from   SaleTab)   as   a

 

select   @sql   =   left(@sql,len(@sql)-1)   +   '   from   SaleTab   group   by   Commodity '

exec(@sql)

我还想在前面加一列合计,就是该学生的成绩合计,怎样实现?
最好可以把列排序!怎样实现?
谢谢


[解决办法]
set @sql= 'select sum(SaleNum) as 合计, '
select @sql = @sql + 'sum(case Store when ' ' '+Store+ ' ' '

then SaleNum else 0 end) as ' ' '+Store+ ' ' ', '

from (select distinct Store from SaleTab) as a



select @sql = left(@sql,len(@sql)-1) + ' from SaleTab group by Commodity '

exec(@sql)

[解决办法]
Declare @sql Varchar(8000)
select @sql = @sql + 'sum(case Store when ' ' '+Store+ ' ' '

then SaleNum else 0 end) as ' ' '+Store+ ' ' ', '

from (select distinct Store from SaleTab) as a



select @sql = 'select SUM(Store) As 合计, ' + left(@sql,len(@sql)-1) + ' from SaleTab group by Commodity '

exec(@sql)

热点排行