基于是否存在另一个表的记录来更新表并且> 60

时间:2013-01-17 21:32:09

标签: oracle sqlplus

update COLORS
set    COLORS.AR = 'RED'
where  COLORS.GCRS = 'FIRST' 
and    (case when max(NEWAPP."AGE") > 60 
and    count(NEWAPP."AGE") > 0)

我收到一条错误消息“此处不允许使用群组功能”

有谁知道如何防止此错误?

标题几乎说明了我对目标的所有看法。

1 个答案:

答案 0 :(得分:1)

如果表之间确实没有关系

UPDATE colors
   SET colors.ar = 'RED'
 WHERE colors.gcrs = 'FIRST'
   AND EXISTS( SELECT 1
                 FROM newapp
                WHERE age > 60 )

但是,在一个适当的数据模型中,你想要做一个像这样的不相关子查询的情况,这将是非常不寻常的。通常,会有一些列将colors表与newapp表相关联,并且您希望在EXISTS子查询中为该关系添加一个谓词。