使用Multiple case When语句

时间:2012-07-26 15:00:44

标签: sql

我的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 

1 个答案:

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