그룹 결과에 따라 테이블 업데이트그룹 결과에 따라 테이블 업데이트
해결하기 위해 노력하고있는 까다로운 업데이트 문제가 있습니다. 필드의
Table1 {pers_id, loc_id, pos, ... }
Table2 {pers_id, loc_id, pos, ... }
없음 독특한 없습니다 :이처럼 보이는 같은 세 개의 열 및 추가 다양한 열을 포함하는 두 개의 테이블이 있습니다. 처음 두 필드는 동일한 엔티티에 속한 테이블 (또는 테이블)의 레코드를 집합 적으로 식별합니다. Table1은 엔터티에 속한 15 개의 레코드를 가질 수 있으며 table2는 동일한 엔터티에 속한 4 개의 레코드를 가질 수 있습니다. 세 번째 컬럼 'pos'는 0에서부터 어떤 인덱스까지이며, 이것은 업데이트하려고하는 컬럼입니다.
표 1과 표 2에서 pos 열은 0에서 시작하여 사용자 선택에 따라 증가하기 때문에 예제 (table1의 15 개 레코드와 table2의 4 개 레코드)는 table1에 0 - 14, Table2는 0-3의 'pos'값을 포함합니다.
Table1의 pos 필드를 Table2에서 유사한 엔티티 수의 결과로 증가시키고 싶습니다.
select table2.pers_id, table2.loc_id, count(*) as pos_increment from table2 group by table2.pers_id, table2.loc_id;
예에서, 업데이트의 최종 결과는 (표 15 개 기록과 표 2 사 개 기록), 모든 기록 될이 제대로 나에게 표 2의 결과를 제공하는 SQL 문이다 동일한 엔티티의 Table1이 4만큼 증가합니다 (특정 엔티티 그룹 by의 결과). 0은 4, 15에서 19 등으로 변경됩니다.
단일 성명에서 성취 할 수 있습니까?
그냥 그것에 나를 이길, 데모 (http://www.sqlfiddle.com/#!4/ ac2b4/1) – GarethD
완벽 - 매력처럼 작동합니다. 감사. – bill89654
대답을 수락 된 것으로 표시하십시오. 감사. –