条件分组依据并选择查询sql

时间:2018-10-27 08:37:34

标签: sql sql-server

我正在查询条件组为by的查询,我只是想知道是否有一种方法可以使条件具有select语句 我的查询是

select sum(totalamount),typetitle,
from #temp group by (case when  Type ='1' then typetitle else Type end)

通过此查询,我在typetitle处出错,因为它不在group by语句中,对此有任何解决方法吗?

2 个答案:

答案 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;