2017-02-18 1 views
0

아무도이 쿼리를 작동시키는 데 도움을 줄 수 있습니까? 비 키에 매핑되는 열을 수정할 수 없습니다 : 나는 다른 테이블 여기 내부 조인을 사용하여 쿼리를 업데이트 할 때의 문제

에 가입 한 테이블의 열 상태를 업데이트 시도하고 내가 ORA-01779 "는 무엇입니까

update 
(select I.account_id, I.sts, I.name_id, CI.CRM_TYPE, I.comments 
    from PPInters I 
     inner join DW.CUST CT 
     on I.account_id = CT.account_id 
     where 
      I.sts is null 
      AND I.comments IS NOT NULL 
      AND CT.CUSTTYPe = 'INTNL') T 

SET T.STS = 'D' 

WHERE T.account_id IN (2000208927,380166014,190180447,166078041,105029075 ) 

쿼리를하다 -preserved 테이블 "오류

내가 여기서 뭘하려고하는 것은에 설정 I.STS의 = 'D'700 개 레코드이 쿼리

select I.account_id, I.sts, I.name_id, CI.CRM_TYPE, I.comments 
      from PPInters I 
       inner join DW.CUST CT 
       on I.account_id = CT.account_id 
       where 
        I.sts is null 
        AND I.comments IS NOT NULL 
        AND CT.CUSTTYPe = 'INTNL' 
를 사용하여 뽑아

가 나는

+0

은'CI' 테이블 별칭은 무엇입니까 당신의'select' 절? – mathguy

답변

1

, account_id 테이블 PPInters의 기본 키 kolumn 것을 Assumming 감사
이 값이 고유의이 테이블에서 레코드를 식별한다 :

UPDATE PPInters 
SET STS = 'D' 
WHERE account_id IN (

      select I.account_id 
       /*, I.sts, I.name_id, CI.CRM_TYPE, I.comments */ 
      from PPInters I 
       inner join DW.CUST CT 
       on I.account_id = CT.account_id 
       where 
        I.sts is null 
        AND I.comments IS NOT NULL 
        AND CT.CUSTTYPe = 'INTNL' 

) 
AND account_id IN (2000208927,380166014,190180447,166078041,105029075 ) 
+0

이것은 작동합니다 - 정말 고마워요. –

관련 문제