-3

次のコードを使用して case ステートメントを結合しようとしていますが、エラーが発生し続けます。

SELECT     
        dbo.COL_TBL_WAGES.[Job Group], 
        SUM(CASE
                 WHEN COL_V_COST.EMP_TNG_RL_CD = 'ST' 
                  THEN ([CountOfEMP_TNG_STT_DT] * 
                      (WHEN IsNumeric([TBL_VCOURSE.Length]) 
                        THEN TBL_VCOURSE ELSE 0 END) AS ST_Hours
4

1 に答える 1

2

CASE元の式には 2 つの式があるため、これが必要なようです。

SELECT  dbo.COL_TBL_WAGES.[Job Group], 
    SUM(CASE 
            WHEN COL_V_COST.EMP_TNG_RL_CD = 'ST' 
            THEN [CountOfEMP_TNG_STT_DT] 
            ELSE 0 END
        * CASE 
            WHEN IsNumeric([TBL_VCOURSE.Length]) = 1 
            THEN TBL_VCOURSE 
            ELSE 0 END
        ) AS ST_Hours

編集、コメントに基づいて、クエリは次のようになります。

SELECT dbo.COL_TBL_WAGES.[Job Group], 
    SUM(CASE 
            WHEN COL_V_COST.EMP_TNG_RL_CD = 'ST' 
            THEN [CountOfEMP_TNG_STT_DT] ELSE 0 END 
        * CASE 
            WHEN IsNumeric([COL_TBL_VCOURSE].[Length]) = 1 
            THEN COL_TBL_VCOURSE.[LENGTH]
            ELSE 0 END) AS ST_Hours, 
    SUM(CASE 
            WHEN COL_V_COST.EMP_TNG_RL_CD = 'ST' 
            THEN [CountOfEMP_TNG_STT_DT]*CAST([2011 Total] AS FLOAT) ELSE 0 END 
            * CASE 
                WHEN IsNumeric([COL_TBL_VCOURSE].[LENGTH]) = 1 
                THEN CAST([COL_TBL_VCOURSE].[LENGTH] AS FLOAT) ELSE 0 END) AS ST_Cost
于 2013-01-22T15:33:51.140 に答える