1

私はこれまでに行った中で最も長いcomninedcaseステートメントを持っており、このエラーのトラブルシューティングを行うことができません。ITは、そのような単純なエラーを理解できないことを完全に恥ずかしく思っている)の近くの構文エラーを言います

SUM(CASE 
      WHEN COL_V_STD_REP_FullCourseDetail.SYSTEM = 'GEMS' 
      THEN CASE 
             WHEN RRDD LIKE '12%' OR RRDD LIKE '13%' OR RRDD LIKE '16%' OR 
                  RRDD LIKE '17%' OR RRDD LIKE '2706%' OR RRDD LIKE '2707%' OR 
                  RRDD LIKE '2331%' 
             THEN [DUR_IN_Hours] 
             ELSE 0 
             END) AS SP_DOM_INTL_HRS
4

2 に答える 2

6

あなたは2番目を逃していますEND

SUM(CASE 
      WHEN COL_V_STD_REP_FullCourseDetail.SYSTEM = 'GEMS' 
      THEN 
        CASE 
          WHEN RRDD LIKE '12%' 
            OR RRDD LIKE '13%' 
            OR RRDD LIKE '16%' 
            OR RRDD LIKE '17%' 
            OR RRDD LIKE '2706%' 
            OR RRDD LIKE '2707%' 
            OR RRDD LIKE '2331%' 
          THEN [DUR_IN_Hours] 
          ELSE 0 
        END
     END) AS SP_DOM_INTL_HRS
     ^ -- this is missing

補足として、コードをフォーマットすると、これらの問題を簡単に見つけることができます。

于 2013-01-24T19:43:21.763 に答える
2

論理的には、ロジックがそれほど複雑でない場合は、CASE ステートメントをネストしません。このような場合、ネストされた CASE ステートメントのロジックを最初の CASE ステートメントに追加します (以下を参照)。

SUM(CASE 
  WHEN COL_V_STD_REP_FullCourseDetail.SYSTEM = 'GEMS' AND 
       (RRDD LIKE '12%' 
        OR RRDD LIKE '13%' 
        OR RRDD LIKE '16%' 
        OR RRDD LIKE '17%' 
        OR RRDD LIKE '2706%' 
        OR RRDD LIKE '2707%' 
        OR RRDD LIKE '2331%') THEN [DUR_IN_Hours] 
  ELSE 0 
END) AS SP_DOM_INTL_HRS
于 2013-01-24T19:52:34.873 に答える