【发布时间】:2013-06-13 03:40:04
【问题描述】:
我在 Teradata 中有 2 个表 - “a”和“ch”。表 ch 包含 2 列“amt”和“code”。表“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 语句。
有什么建议可以实现上述功能吗?
【问题讨论】: