我正在查询条件组为by的查询,我只是想知道是否有一种方法可以使条件具有select语句 我的查询是
select sum(totalamount),typetitle,
from #temp group by (case when Type ='1' then typetitle else Type end)
通过此查询,我在typetitle处出错,因为它不在group by语句中,对此有任何解决方法吗?
答案 0 :(得分:0)
Tr如下所示
select sum(totalamount),
(case when Type ='1' then typetitle else Type end)
from #temp
group by (case when Type =1 then typetitle else Type end)
按投影分组的列名称和按列分组的名称必须相同
答案 1 :(得分:0)
如果您不想重复该表达式,则apply
是一种方法:
select v.typegroup, sum(v.totalamount),
from #temp t cross apply
(values (case when Type ='1' then typetitle else Type end)
) v(typegroup)
group by v.typegroup;