如何在更新中使用 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
我有一个 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
我认为问题在于
中使用的别名 sqwhere 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