我的Case When
声明工作正常:
sum(CASE WHEN datepart(dw,applydtm) = '1'
then (cast(durationsecsqty as float)/3600)
else 0
End
) as Sunday
但是当我到达WHEN
时,我需要添加另一个(cast(durationsecsqty as float)/3600)
。此时,如果返回结果为0
,我想从另一列moneyamt
中提取值。
我正在尝试将此声明与我的第一个声明结合起来:
Case (CAST(durationsecsqty as float)/3600)
when 0
then moneyamt
else (CAST(durationsecsqty as float)/3600)
end as Sunday
答案 0 :(得分:2)
听起来你需要这个:
sum(
CASE
WHEN datepart(dw,applydtm) = '1'
then
CASE
WHEN Case (CAST(durationsecsqty as float)/3600) = 0
THEN moneyamt
ELSE (CAST(durationsecsqty as float)/3600)
END (cast(durationsecsqty as float)/3600)
else 0
End) as Sunday