当前位置: 代码迷 >> Sql Server >> SQL每个字段都求和的有关问题
  详细解决方案

SQL每个字段都求和的有关问题

热度:71   发布时间:2016-04-24 10:35:47.0
SQL每个字段都求和的问题
SELECT
        substring(DQXZBM,0,3) as bm
        ,sum(XZGS) as XZGS
        ,sum(XZCGS) as XZCGS
        ,sum(CMXZGS) as CMXZGS
        ,sum(GDMJ) as GDMJ
        ,sum(JTGD) as JTGD
        ,sum(GZJJTSY) as GZJJTSY
        ,sum(GCJJTSY) as GCJJTSY
        ,sum(ZLD) as ZLD
        ,sum(CBNHS) as CBNHS
        ,sum(QDHTFS) as QDHTFS
        ,sum(CBHTMJ) as CBHTMJ
        ,sum(BFTDJYQZSFS) as BFTDJYQZSFS
        ,sum(CBHRS) as CBHRS
        ,sum(QDCBHTFS) as QDCBHTFS
        ,sum(QDCBHTMJ) as QDCBHTMJ
        ,sum(CBJDDMJ) as CBJDDMJ
        ,sum(CBSHDMJ) as CBSHDMJ
        ,sum(TDCBJYQLZMJ) as TDCBJYQLZMJ
        ,sum(TDCBJYQZRMJ) as TDCBJYQZRMJ
        ,sum(TDCBJYQHHMJ) as TDCBJYQHHMJ
        ,sum(SLLDXZS) as SLLDXZS
        ,sum(XSQJLDXZS) as XSQJLDXZS
        ,sum(XQSJGZRYS) as XQSJGZRYS
        ,sum(XZJGZRYS) as XZJGZRYS
        ,sum(CGBGZRYS) as CGBGZRYS
    FROM
        SDQKB SDQKB group by substring(DQXZBM,0,3);

类似这样,如果我有100个字段都是数值型的,而且都要求和,我不能每个字段都SUM这样写吧?有没有快捷的写法?
------解决方案--------------------


create table t123
(
 DQXZBM varchar(20),
 XZGS int,
 XZCGS int,
CMXZGS int
)

declare @sql varchar(max)
set @sql='select'
select @sql=@sql+' sum('+name +') ' from 
sys.syscolumns where id= OBJECT_ID('t123')
set @sql=@sql+' from t123 group by ***'
print @sql
--输出这样子,
select sum(DQXZBM)  sum(XZGS)  sum(XZCGS)  sum(CMXZGS)  from t123 group by ***


------解决方案--------------------
少了逗号
引用:


create table t123
(
 DQXZBM varchar(20),
 XZGS int,
 XZCGS int,
CMXZGS int
)

declare @sql varchar(max)
set @sql='select'
select @sql=@sql+' sum('+name +') ' from 
sys.syscolumns where id= OBJECT_ID('t123')
set @sql=@sql+' from t123 group by ***'
print @sql
--输出这样子,
select sum(DQXZBM)  sum(XZGS)  sum(XZCGS)  sum(CMXZGS)  from t123 group by ***
  相关解决方案