如何使用select in update?

时间:2017-01-23 10:12:30

标签: sql sql-update firebird

我有一个Firebird服务器,我需要在此服务器上的表上执行更新。

我应该更新内部选择返回的那些行。

我有这个SQL,它在from(

时出错
update szamla_tortenet as s1
set s1.elso_atadas=1
FROM(
SELECT CEGKOD,KBIZ_ID,MIN(INS_dATE)
from SZAMLA_TORTENET AS S2
GROUP BY CEGKOD,KBIZ_ID
  )  as sq
  where s1.ins_date=sq.ins_date

2 个答案:

答案 0 :(得分:1)

我认为问题在于

中使用的别名sq
where s1.ins_date=sq.ins_date

没有找到ins_date作为select语句返回的col。

update szamla_tortenet as s1
set s1.elso_atadas=1
where s1.ins_date=(SELECT MIN(INS_dATE) from SZAMLA_TORTENET 
GROUP BY (CEGKOD,KBIZ_ID);

此外,如果上述查询失败,请检查内部查询是否返回多行,我非常确定它将具有组。

答案 1 :(得分:0)

尝试这个

update szamla_tortenet as s1
set s1.elso_atadas=1
FROM(
SELECT CEGKOD,KBIZ_ID,MIN(INS_dATE) as ins_date
from SZAMLA_TORTENET AS S2
GROUP BY CEGKOD,KBIZ_ID
  )  as sq
  where s1.ins_date=sq.ins_date