我在 Teradata 中有 2 个表 - “a”和“ch”。表 ch 包含 2 列“amt”和“code”。表“a”和“ch”之间是 LEFT JOIN。加入,在 SELECT 部分我试图对 amt 值求和。但是,当“代码”属性具有特定值时,它必须只取“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 子句中的非法表达式。
谷歌说,那是因为CASE
不允许SELECT
陈述。
任何建议如何实现上述功能?