MERGE INTO tableName t USING Temp_tableName s ON t.gpi001 = s.gpi001 AND t.gpi002 = s.gpi002 WHEN MATCHED AND t.gpi003 != s.gpi003 AND t.gpi004 != s.gpi004 AND t.gpi005 != s.gpi005 THEN UPDATE SET gpi003 = s.gpi003 , gpi004 = s.gpi004 , gpi005 = s.gpi005 , gpi006 = CASE WHEN t.gpi003 <> s.gpi003 THEN '[상품명]' + t.gpi003 + '→' + s.gpi003 + ' ; ' ELSE '' END + CASE WHEN t.gpi004 <> s.gpi004 THEN '[구매가]' + t.gpi004 + '→' + s.gpi004 + ' ; ' ELSE '' END + CASE WHEN t.gpi005 <> s.gpi005 THEN '[품절여부]' + t.gpi005 + '→' + s.gpi005 + ' ; ' ELSE '' END , gpi007 = '변경' WHEN NOT MATCHED THEN INSERT (gpi001, gpi002, gpi003, gpi004, gpi005, gpi006, gpi007) VALUES (s.gpi001, s.gpi002, s.gpi003, s.gpi004, s.gpi005, '', '신규') WHEN NOT MATCHED BY SOURCE THEN UPDATE SET gpi007 = '단종' ;
맨 밑 라인에서 SOURCE 와 매치되지않을때 수행하는
UPDATE SET GPI007 ='단종' 을 아래처럼 수정하려고하는데요,
UPDATE SET GPI007 ='단종' , T.GPI008 = T.GPI007 + '→' + S.GPI0007;
이렇게 GPI008 컬럼값을
기존에 gpi007 값이 판매 였을경우 판매 → 단종 이런식으로 UPDATE 해주려고 하는데
수행시 [여러 부분으로 구성된 식별자 "S.GPI007"은(는) 바인딩할 수 없습니다.]
라는 에러가 발생되는데 검색해보니 테이블 별칭을 지정해주지 않을경우에 발생되는 에러라고 하더라구요
그런데 위에서 별칭을 S로 지정해주었는데도 왜 뜨는지 원인을 잘모르겠네요..ㅠ
조언을 주신다면 감사하겠습니다