在Case语句中有“___ in(从#temp中选择distinct ___)”

时间:2010-09-24 00:46:26

标签: tsql case

我正在努力实现这个目标

select
   case
      when Org_CD = '1111' or Org_CD in (select distinct New_Org_CD from #temp) then 'International'
   end as 'Organisation',
count(*)
from #AnotherTempTable
group by
   case
      when Org_CD = '1111' or Org_CD in (select distinct New_Org_CD from #temp) then 'International'
   end 

我收到了这个错误:

  

列'#AnotherTempTable.Org_Cd'是   因为它在选择列表中无效   不包含在任何一个   聚合函数或GROUP BY   子句。

是因为我不能在case语句中使用“in”关键字吗?如果是的话,任何已知的解决方法都会有所帮助!

2 个答案:

答案 0 :(得分:1)

我试试这个......

select
    Org_CD, count(*)
from
    #AnotherTempTable A
    JOIN
    (select distinct New_Org_CD from #temp UNION SELECT '1111') T ON A.Org_CD = T.New_Org_CD
group by
   Org_CD

你不能拥有这样的内联IN(CASE +聚合)

如果不行,请提供样本数据和输出

答案 1 :(得分:0)

我使用'Union'解决了gbn的解决方案。谢谢大家。