예 : 나는 table1과 table3 아래있다. table2의 'Counts'필드는 table1과 table3의 valuess 필드를 기반으로 업데이트해야합니다. 즉 23은 table1에 4 번 나타나고 table3과 45는 한 번 나타납니다. 표 2는 해당 개수로 업데이트해야합니다.첫 번째 2 개 테이블의 데이터를 사용하여 세 번째 테이블을 업데이트하는 SP
표
Id | Data | Valuess
1 | rfsd | 23
2 | fghf | 45
3 | rhhh | 23
표 3
Id | Data | Valuess
1 | rfsd | 23
2 | tfgy | 23
표 2
Id | Fields | Counts
1 | 23 | 4
2 | 45 | 1
내가 이것을 달성하기 위해 아래의 저장 프로 시저를 사용하고 있습니다.
WITH t13 AS (
SELECT Id, Data, Valuess FROM Table1 UNION ALL SELECT Id, Data, Valuess FROM Table3),
cte AS (SELECT Valuess,COUNT(*) AS Count2 FROM t13 GROUP BY Valuess)
UPDATE t2
SET t2.Counts = cte.Count2
FROM Table2 t2 JOIN cte ON t2.Fields = cte.Valuess;
질문
지금 대신 상기 테이블 데이터 난 테이블 데이터 이하가....
표
Id | Data | Valuess
1 | rfsd | 004561
2 | fghf | 0045614
3 | rhhh | adcwyx
표 3
Id | Data | Valuess
1 | rfsd | 0045614
2 | tfgy | 004561
표 2
Id | Fields | Counts
1 | 0045614 | 4
2 | adcwyxv | 1
여기에서는 table1 및 table3의 valuess 필드에 영숫자 데이터가 있습니다. 또한 '004561'및 '0045614'와 같은 데이터가 있습니다
필드의 7 번째 요소를 잘라 내고 테이블 3의 7 번째 요소를 클리핑하여 비교하고 싶습니다. 즉 00451661, 004561 및 adcwyx가 사용됩니다. 1 번 테이블. 004561 및 004561은 table3에서 가져와 테이블 2의 004561 및 adcwyx와 비교됩니다 (먼저 table2의 7 번째 요소를 잘라 내야합니다).
최종 결과는 표 2와 같아야합니다.
SQL-Server! = MySQL. – Barmar
table1의 값인'adcwyx'는 어떻게 table2에서'adcwyxv'가됩니까? – SqlZim
sqlzim- 2 개의 다른 데이터 값이며 서로 종속되지 않습니다. –