2013-07-31 72 views
0

我升级谁了11%出席的权利要求在2012年运营商的工资, 尝试错误的SQL更新

update operator or 
September o.sueldo = o.sueldo + (o.sueldo * 0.11) 
where exists (select 1 from claim where r.cod_operador r = o.cod_operador 
and r.fecha Between '2012-01-01 'and '2012-12-31'); 

但它说 “错误代码:1241操作数应该包含1列(S) “ 任何人都知道我可以如何解决这些错误?

sqlfiddele这里:http://sqlfiddle.com/#!2/b2771

+2

'o.sueldo +(邻。 sueldo * 0.11)'可能表示为'o.sueldo * 1.11'。 –

回答

2

你做了什么这个说法?

这样,它至少符合你的表:

update operador o 
set o.sueldo = o.sueldo + (o.sueldo * 0.11) 
where exists (select 1 from reclamo r where r.cod_operador = o.cod_operador 
and r.fecha Between '2012-01-01 'and '2012-12-31'); 

但我不知道这是否会做正确的事,到底...

1

我觉得您的查询应该是

update operator o 
SET o.sueldo = o.sueldo + (o.sueldo * 0.11) 
where exists (select 1 from claim where r.cod_operador r = o.cod_operador 
and r.fecha Between '2012-01-01 'and '2012-12-31');