case when语法
简单 CASE 函数:CASE input_expression
    WHEN when_expression THEN result_expression
        [ ...n ]
    [ 
        ELSE else_result_expression
    ENDCASE 搜索函数:CASE
    WHEN Boolean_expression THEN result_expression
        [ ...n ]
    [ 
        ELSE else_result_expression
    END

解决方案 »

  1.   

    直接寫在語名里就好了如:
    round( (select 
    (Case when  (isnull(G_CQTS,0)+(isnull(G_gonxu,0)+isnull(G_shijia,0)+isnull(G_病假,0)+isnull(G_產假,0)+isnull(G_GS,0))/60.0/8.5)= dbo.月天數(@sessionID)   
               then case when ((isnull(G_shijia,0)+isnull(G_病假,0)+isnull(G_產假,0)+isnull(G_GS,0))/60.0/8.5)>3 
                               then isnull(G_fwjt,0)+isnull(G_jsjt,0)-(isnull(G_shijia,0)+isnull(G_病假,0)+isnull(G_產假,0)+isnull(G_GS,0))/60.0/8.5*cast((isnull(G_fwjt,0)+isnull(G_jsjt,0)) as float)/dbo.月天數(@sessionID)  
                               else (isnull(G_fwjt,0)+isnull(G_jsjt,0))  end    
              else (isnull(G_cqts,0)+(isnull(G_Gonxu,0)/60.0/8.5))*cast((isnull(G_fwjt,0)+isnull(G_jsjt,0)) as float)/dbo.月天數(@sessionID)    end)from gz_total  
    where empid=@empid and sessionID=@sessionID),1)夠多吧,請不要眼花啊
    如果看懂,就給分吧