如何在更新中使用 select?

How can I use a select in update?

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

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

我有这个 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

我认为问题在于

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

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

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);

此外,如果上述查询失败,请检查内部查询是否返回多行,我很确定它会返回多行,因为它有组。

试试这个

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