当前位置: 代码迷 >> Sql Server >> 关于每个GROUPBY表达式必须至少包含一个不是外部引用的列,该如何解决
  详细解决方案

关于每个GROUPBY表达式必须至少包含一个不是外部引用的列,该如何解决

热度:102   发布时间:2016-04-27 14:21:14.0
关于每个GROUPBY表达式必须至少包含一个不是外部引用的列
我现在有个表smaple
  name aType bType cType
-------------------------------
1. aa DA
2. b2 WK
3. cc DA
4. fea SS
5. wf DA
6. ei WK

现在我以aType分组统计数量,想得到这样子
--------------------------------------
3 DA
2 WK
1 SS

[email protected]='aType'

select count(*),@mmm
from T_TermDescofLD group by @mmm

但是就会报错“关于每个GROUPBY表达式必须至少包含一个不是外部引用的列”

因为列名不是固定的,列名只能是变量

请问大家怎么解决呢?




------解决方案--------------------
SQL code
--用动态declare @sql varchar(max)declare @mmm varchar(100)set @mmm = 'atype'set @sql = 'select count(*),[email protected]+' from tb group by [email protected]exec(@sql)
------解决方案--------------------
SQL code
--动态sqlexec ('select count(*),[email protected]+' from T_TermDescofLD group by [email protected])
------解决方案--------------------
while @@FETCH_STATUS=0
begin
insert #Temp(countNum,ruler)
exec ('select count(*),[email protected]+' from T_TermDescofLD group by [email protected])
FETCH next from cur_colName INTO @mmm
end