标题:求助sql关于sum大量列的问题
只看楼主
kamishiro
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2013-3-21
结帖率:50%
 问题点数:0 回复次数:1 
求助sql关于sum大量列的问题
比如一列index,其余比如有上百column的数据,然后我要对这些column进行相同的index进行加总,如果列少,我直接可以:
select index, sum(c1) c1, sum(c2) c2,sum(c3) c3 from data group by index
但column有上百个 我总不可能一个个c1 c2....c100这样列出来吧,有什么好办法吗?
2013-11-09 12:32
mxbing1984
Rank: 7Rank: 7Rank: 7
来 自:贵州道真
等 级:贵宾
威 望:37
帖 子:73
专家分:342
注 册:2014-8-8
得分:0 
Declare @sql Varchar(8000)
Set @sql='Select index,'
Select @sql=@sql+'sum('+name+') As '+name+',' From sys.columns
    Where object_id=object_id('data')
        And name like 'c%'
Set @sql=STUFF(@sql,LEN(@sql),1,'')+' From data Group By index'
Exec(@sql)
--把data表所有c开头的栏位,组成一个sum的字符串,然后执行

天再高,踮起脚尖就能更接近阳光
2014-08-08 14:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-423287-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.288730 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved