次のコードがあります。
SELECT CASE WHEN (ACCT.NMAJORHCODE IN ('7','16')
AND DET_TYPE NOT IN ('ACR', 'ADR', 'CRN'))
OR (DET_TYPE IN ('ADR', 'CRN') AND CR.NMAJORHCODE < 4 AND ACCT.NTYPE NOT IN ('A', 'X'))
THEN -NL.DET_FINAL
ELSE NL.DET_FINAL
これは、15 のデータベースをループします。ただし、データベースの 1 つがわずかに異なるビジネス ルールに従って動作するため、上記の例では、最後の 2 行を次のようにする必要があります。
THEN NL.DET_FINAL
ELSE -NL.DET_FINAL
つまり、符号が逆になります。
CASE ステートメントを希望どおりに動作させるにはどうすればよいですか? 英語では、THEN 句に到達すると、「DB_NAME() = 'Proteus' の場合は正にしない限り、数値を負にします」となります。
同様に、ELSE には符号反転が必要です。
読んでくれてありがとう。