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 ***
------解决方案--------------------
少了逗号