Teradata に "a" と "ch" という 2 つのテーブルがあります。テーブル ch には、「amt」と「code」の 2 つの列が含まれています。テーブル "a" と "ch" の間は LEFT JOIN です。結合が行われ、SELECT 部分で amt 値を合計しようとしています。しかし、「code」属性に特定の値がある場合、「amt」値の 70% のみを使用する必要があります。
これは私が試したことです:
SELECT SUM
(
CASE WHEN ch.code IN (SELECT code from ...)
then 0.7*ch.amt
)
else ch.amt
END
FROM a LEFT JOIN ch
エラーが発生します:
CASE式のWHEN句の式が不正です。
Google は、ステートメントをCASE
許可しないためだと述べています。SELECT
上記の機能をどのように実現できますか?