다음과 같은 간단한 테이블 구조가 있습니다.
테이블 tempData
╔══════════╦═══════╗
║ NAME ║ MARKS ║
╠══════════╬═══════╣
║ Narendra ║ 80 ║
║ Ravi ║ 85 ║
║ Sanjay ║ 90 ║
╚══════════╩═══════╝
그리고 이와 같은 tempDataView 와 같은 다른 테이블 이름도 있습니다.
╔══════════╦═══════╗
║ NAME ║ MARKS ║
╠══════════╬═══════╣
║ Narendra ║ ║
║ Narendra ║ ║
║ Narendra ║ ║
║ Narendra ║ ║
║ Ravi ║ ║
║ Ravi ║ ║
║ Sanjay ║ ║
╚══════════╩═══════╝
나는 테이블 업데이트 할 tempDataView를 설정에 따라, 마크 받는 사람에 따라 tempDataView을 - 이름 에 비해 tempData - 이름
예, 내가 시도한 것을 보여 드리겠습니다. 커서를 사용 하여이 문제를 해결하려고 시도했으며 완벽하게 해결되었지만 하위 쿼리를 사용하여 해결하는 방법을 찾고 있습니다.
여기있어:
Declare @name varchar(50),@marks varchar(50)
Declare @cursorInsert CURSOR
set @cursorInsert = CURSOR FOR
Select name,marks from tempData
OPEN @cursorInsert
FETCH NEXT FROM @cursorInsert
into @name,@marks
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE tempDataView set marks = @marks where name = @name
FETCH NEXT FROM @cursorInsert
INTO @name,@marks
END
CLOSE @cursorInsert
DEALLOCATE @cursorInsert
실제로 Subquery를 사용하여 해결하는 것은 숙제와 같습니다.