SUM无法正常工作的情况

时间:2019-04-10 08:39:09

标签: sql

我正在尝试对2种特定状态(4和16)的位值求和。问题是,它不是对位值求和,而是将值保持在“ 1”。因此,它为每个状态返回“ True”,但是它应该对两个状态的值求和,并且仅在等于2时才返回True。

如果状态(4和16)的两个值都等于2,我想返回True

我尝试使用IIF,计数和总和进行子选择。

CASE
    WHEN (status in ('4', '16') and sum(cast(bitvalue as int)) = '2') THEN 
    'True' ELSE 'False' end as 'test'

仅当状态中的组合值等于2时才应返回true

1 个答案:

答案 0 :(得分:0)

尝试以下操作,通过再增加一种位值大小写,确保您具有group by语句

CASE
WHEN (status in ('4', '16') and sum(cast(bitvalue as int)) = '2') THEN 
'True' ELSE 'False' end as 'YourTestColumn',
CASE 
WHEN (status in ('4', '16') and sum(CASE WHEN bitvalue =1 then 1 else 0 end) = '2') THEN 
True' ELSE 'False' end as 'MyTestColumn'