2017-01-23 3 views
-2

파이어 버 서버가 있는데이 서버의 테이블에 대한 업데이트를 실행해야합니다.업데이트에서 선택을 사용하려면 어떻게해야합니까?

내부 선택 물이 반환하는 행을 업데이트해야합니다.

나는이 SQL을, 그리고 내가 문제가 COL가 반환 별칭 평방가 ins_date 찾을 수없는

where s1.ins_date=sq.ins_date 

에 사용되는 것으로 생각 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

시도 en/html/fblangref25-dml-merge.html) 대신 –

답변

1

에서 오류에서 실행 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); 

또한 위 쿼리가 실패하면 내부 쿼리가 여러 개의 행을 반환하는지 확인합니다.이 행은 여러 개의 행을 반환하며 그룹이있는 것처럼 확신합니다.

0

대신`사용 update`, 당신은 [`merge`] (http://www.firebirdsql.org/file/documentation/reference_manuals/fblangref25-에서 볼 수도의 하나

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