基于特定条件的表中的UPDATE值(SQL)

时间:2017-09-20 13:19:52

标签: mysql sql oracle oracle-sqldeveloper

这里的第一个问题请耐心等待。

我想用其他表中的数据更新表中的值。

我要更新的主表 - 供应商名称,指标,表现%)

我的表格预先填充了供应商和指标

  • 供应商A,指标1,表现%(目前为空)
  • 供应商A,指标2,表现%(目前为空)

我想根据表格指标1中的供应商名称和指标更新效果%(当前为空),但也希望更新来自表格指标2的指标2值。

我的问题是我的sql代码更新了我的主表中两行的值,而不是只更新我的'where condition'所声明的行。

因此,我最终得到的是指标1 = 50%和指标2 = 100%,最终得出指标1 = 50%,指标2 = NULL。

这是我的代码。

UPDATE MAIN_TABLE 
SET ***PERFORMANCE*** =  CASE WHEN MAIN_TABLE.METRIC_NAME = '***METRIC1***' 
THEN (SELECT AVG (***PERFORMANCE***)
FROM TABLE1)

WHEN MAIN_TABLE.METRIC_NAME = '***METRIC2***' 
THEN  (SELECT AVG (***PERFORMANCE***)
FROM TABLE 2) END;

非常感谢任何帮助或建议

0 个答案:

没有答案