我有一个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
答案 0 :(得分:1)
我认为问题在于
中使用的别名sqwhere 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