1

次のSQLステートメントがあります。

     COUNT(CASE 
          WHEN CALCULATE_CALLBACK_DURATION(CREATED, LAST_UPD) IS NULL THEN CALCULATE_CALLBACK_DURATION(AA.THIS_DATE_OPENING, LAST_UPD) /60 /60 < 2 THEN 1
          ELSE CALCULATE_CALLBACK_DURATION(CREATED, LAST_UPD) /60 /60 < 2 THEN 1 
     END) AS Calculatedsum

CALCULATE_CALLBACK_DURATION(CREATED, LAST_UPD)合計を返す関数はどこですか(秒単位)

しかし、私はエラーが発生しています

キーワードがありません

私は何を間違っていますか?そして、このように数えることさえ可能ですか?

アップデート

私も次のことを試しました:

 CASE WHEN CALCULATE_CALLBACK_DURATION(AA.THIS_DATE_OPENING, LAST_UPD) /60 /60 < 2
 THEN 1 END 
ELSIF CALCULATE_CALLBACK_DURATION(CREATED, LAST_UPD) /60 / 60 <2 THEN 1 END IF) AS Calculatedsum

問題は、計算の結果がnullの場合、別の方法で合計を計算し、それが2未満かどうかを確認してから+1としてカウントすることです

4

1 に答える 1

1

もう 1 つ欠けていWHENます ( が 2 つ続けてありますTHEN)。これ

WHEN CALCULATE_CALLBACK_DURATION(CREATED, LAST_UPD) IS NULL -- MISSING VALUE
THEN CALCULATE_CALLBACK_DURATION(AA.THIS_DATE_OPENING, LAST_UPD) /60 /60 < 2 THEN 1
-- ^-- Wrong keyword

する必要があります

COUNT(CASE
  WHEN CALCULATE_CALLBACK_DURATION(CREATED, LAST_UPD) IS NULL THEN
    CASE
    WHEN (CALCULATE_CALLBACK_DURATION(AA.THIS_DATE_OPENING, LAST_UPD) /60 /60 < 2)
      OR (CALCULATE_CALLBACK_DURATION(CREATED, LAST_UPD) /60 /60 < 2) THEN 1
    ELSE 0 END
  ELSE 0
END) AS Calculatedsum
于 2013-04-16T14:07:21.327 に答える