2013-07-31 57 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');