楼主的需求不知道到底怎样。再来一个例子: Create table test (name char(10),km char(10),cj int) go insert test values('张三','语文',80) insert test values('张三','数学',86) insert test values('张三','英语',75) insert test values('李四','语文',78) insert test values('李四','数学',85) insert test values('李四','英语',78)想变成姓名 语文 数学 英语 张三 80 86 75 李四 78 85 78 declare @sql varchar(8000) set @sql = 'select name' select @sql = @sql + ',sum(case km when '''+km+''' then cj end) ['+km+']' from (select distinct km from test) as a select @sql = @sql+' from test group by name' exec(@sql)drop table test
兄台所言,行业不是int型也可以啊?
Select 行业,sum(汇总1),sum(汇总2),... from 表 group by 行业
就是,我现在的一张表里面有个人信息的很多字段,现在要求,按照个人的所在的行业分类汇总? SELECT sum(行业) as n FROM personbasicinfo WHERE sort=1 group by 行业? 对不》
行业字段可以不是int 但汇总字段要为数值型!
按行业汇总你怎么能把他放在sum里面呢, SELECT 行业,sum(field) FROM personbasicinfo WHERE sort=1 group by 行业
无需group by 行业; 如果是统计每个的话,可以 select sort,sum(行业)as n from personbasicinfo group by sort
SELECT * FROM corpbasicinfo WHERE sort=1 group by corpcalling 报错 : 服务器: 消息 8120,级别 16,状态 1,行 1 列 'corpbasicinfo.id' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。 服务器: 消息 8120,级别 16,状态 1,行 1 列 'corpbasicinfo.corpid' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。 服务器: 消息 8120,级别 16,状态 1,行 1 列 'corpbasicinfo.corpcnname' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。 服务器: 消息 8120,级别 16,状态 1,行 1 列 'corpbasicinfo.corpenname' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。 服务器: 消息 8120,级别 16,状态 1,行 1 列 'corpbasicinfo.corpkind' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。 服务器: 消息 8120,级别 16,状态 1,行 1 列 'corpbasicinfo.contactperson' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。 服务器: 消息 8120,级别 16,状态 1,行 1
Create table test (name char(10),km char(10),cj int)
go
insert test values('张三','语文',80)
insert test values('张三','数学',86)
insert test values('张三','英语',75)
insert test values('李四','语文',78)
insert test values('李四','数学',85)
insert test values('李四','英语',78)想变成姓名 语文 数学 英语
张三 80 86 75
李四 78 85 78
declare @sql varchar(8000)
set @sql = 'select name'
select @sql = @sql + ',sum(case km when '''+km+''' then cj end) ['+km+']'
from (select distinct km from test) as a
select @sql = @sql+' from test group by name'
exec(@sql)drop table test
SELECT sum(行业) as n
FROM personbasicinfo
WHERE sort=1 group by 行业?
对不》
SELECT 行业,sum(field)
FROM personbasicinfo
WHERE sort=1 group by 行业
如果是统计每个的话,可以
select sort,sum(行业)as n
from personbasicinfo
group by sort
FROM corpbasicinfo
WHERE sort=1 group by corpcalling
报错
:
服务器: 消息 8120,级别 16,状态 1,行 1
列 'corpbasicinfo.id' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
服务器: 消息 8120,级别 16,状态 1,行 1
列 'corpbasicinfo.corpid' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
服务器: 消息 8120,级别 16,状态 1,行 1
列 'corpbasicinfo.corpcnname' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
服务器: 消息 8120,级别 16,状态 1,行 1
列 'corpbasicinfo.corpenname' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
服务器: 消息 8120,级别 16,状态 1,行 1
列 'corpbasicinfo.corpkind' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
服务器: 消息 8120,级别 16,状态 1,行 1
列 'corpbasicinfo.contactperson' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
服务器: 消息 8120,级别 16,状态 1,行 1