안녕하세요 다름이 아니라
-- 생성쿼리
Create Table TEMP_TABLE
(
UserID varchar(50)
,Seq int
,Price int
,Point int
)
go
Insert into TEMP_TABLE values ('test001',1,500,0)
Insert into TEMP_TABLE values ('test001',2,3000,0)
Insert into TEMP_TABLE values ('test002',3,2000,0)
Insert into TEMP_TABLE values ('test003',4,1000,0)
Insert into TEMP_TABLE values ('test003',5,400,0)
Insert into TEMP_TABLE values ('test003',6,700,0)
-- 2 실행쿼리
UPDATE A SET A.Point=500
FROM TEMP_TABLE A
INNER JOIN
(
SELECT UserID,
Max(Seq) AS MaxSeq
FROM TEMP_TABLE
GROUP BY UserID) B ON A.UserID = B.UserID AND A.Seq = B.MaxSeq
궁금중입니다.
2번의 각 회원아이디당 Seq 최대값에만 Point 를 부여하고자 하여
수동으로 일괄 업데이트 하면 SQL 창에선 실행이 잘됩니다.
그런데 프로시저 안에서 실행이 되면 각 회원에 맞는 포인트가 각회원의 Seq에 다 업데이트 됩니다
참고로 쿼리에선 일괄 500 포인트 이지만 함수로 회원에 맞게 값을 따로 구해옵니다.
Q. 프로시저 안에서 일괄 업데이트가 각 회원당 한개의 최대값(Seq)만 업데이트가 안되고
동일회원 전부 업데이트가 되는 이유를 알고 싶습니다.
A프로시저 안에 B프로시저 실행
* 추가 : 프로시저를 분기 처리해서, 일괄 업데이트 처리만 하도록 따로 프로시저 빼도 안되네요.;;
일괄처리 기능만 하는 , 프로시저를 단독으로 실행하면 또 잘됩니다.
감사합니다.
Comment 3
-
이시우_301202
2014.09.29 20:25
-
minsouk
2014.09.30 10:14
.
-
이시우_301202
2014.10.01 10:37
네 감사합니다. 회사라 메신저 원격 차단되서요^^
해결하긴했습니다. 방법이 좀
1 인서트문
2 인서트문
> 추가 : 의미없는 업데이트 실행문 실행
3 일괄 업데이트 쿼리
INSERT사이에 의미없는 업데이트 하나 껴넣으니 잘되네여 -_- 뭔가 알지 못하는 흐름도가 있는건지 ;;