USE sqlDB;
GO
ALTER TABLE userTbl ADD grade NVARCHAR(5); -- 고객등급 열 추가
GO
CREATE PROCEDURE usp_while
AS
DECLARE userCur CURSOR FOR-- 커서 선언
SELECT U.userid,sum(price*amount)
FROM buyTbl B
RIGHT OUTER JOIN userTbl U
ON B.userid = U.userid
GROUP BY U.userid, U.name
OPEN userCur -- 커서열기
DECLARE @id NVARCHAR(10) -- 사용자아이디를 저장할 변수
DECLARE @sum BIGINT -- 총구매액을 저장할 변수
DECLARE @userGrade NCHAR(5) -- 고객 등급 변수
FETCH NEXT FROM userCur INTO @id, @sum -- 첫행 값을 대입
WHILE (@@FETCH_STATUS=0) -- 행이 없을 때까지 반복(즉, 모든 행 처리)
BEGIN
SET @userGrade =
CASE
WHEN (@sum >= 1500) THEN N'최우수고객'
WHEN (@sum >= 1000) THEN N'우수고객'
WHEN (@sum >= 1 ) THEN N'일반고객'
ELSE N'유령고객'
END
UPDATE userTbl SET grade = @userGrade WHERE userID = @id
FETCH NEXT FROM userCur INTO @id, @sum -- 다음행 값을 대입
END
CLOSE userCur -- 커서 닫기
DEALLOCATE userCur -- 커서 해제
'DBMS > MS SQL' 카테고리의 다른 글
저장프로시져 IF .. ELSE 사용예 (0) | 2013.05.03 |
---|---|
저장프로시져 CASE문 예 (0) | 2013.05.03 |
저장프로시져 @@ERROR함수 사용 예 (0) | 2013.05.03 |
SQL server 2005 오류상태파악 함수 (0) | 2013.05.03 |
날짜,시간함수 (0) | 2013.05.03 |