나는 주식을 처리하는 두 개의 테이블이 있으며 최근에 동기화되지 않았습니다.
데이터는 다시 동기화되도록 업데이트해야하며 tableB
항상 정확하므로이 테이블을 기반으로 업데이트하고이 테이블의 데이터를 사용하여 tableA
.
조인을 통해 업데이트하려고합니다.
아래 코드를 사용하여 여러 가지 업데이트 방법을 시도했습니다 (예 :에서 where 문 사용 xcolumn2
, 선택 부분 제거 등).
내가 놓친 구문이 있거나 잘못된 방향으로 가고 있습니까?
update tableA
set tableA.columnA = tableB.columnA
--select
--tableA.xcolumn2,
--tableA.columnA,
--tableB.columnA,
--from tableA as tableA
left join
(select xcolumn1, xcolumn2, sum(columnA) as columnA, sum(xcolumn3) as xcolumn3
from tableB as tableB group by xcolumn1, xcolumn2) as tableB
on tableA.xcolumn2 = tableB.xcolumn2
group by
tableA.xcolumn2,
tableA.columnA,
tableB.columnA,
having sum(tableA.columnA) != sum(tableB.columnA)
업데이트가 다음과 같이 보일 것이라고 생각합니다.
UPDATE tableA
SET tableA.columnA = tableB.columnA
FROM tableA
JOIN ( SELECT xcolumn1 ,
xcolumn2 ,
SUM(columnA) AS columnA
FROM tableB AS tableB
GROUP BY xcolumn1 ,
xcolumn2
) AS tableB
ON tableA.xcolumn2 = tableB.xcolumn2
AND tableA.xcolumn1 = tableB.xcolumn1
AND (tableA.columnA <> tableB.columnA
OR tableA.columnA IS NULL)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다