2013-12-20 3 views
0

저장 프로 시저가 있고 내부에 select 문, 삽입 및 업데이트가 있지만 select 문에서 나중에 결과에 액세스 할 수 있도록 결과를 변수에 저장하고 싶습니다. 내 업데이트 성명서에. 결과를 변수에 먼저 저장할 수 있습니까?SQL 서버 2008에서 변수에 SQL 결과를 저장하는 방법

SELECT 
    REV1 = COUNT(CASE WHEN QTR = 1 AND MAIN_SAT =1 AND ACTIVE_FLAG = 1 THEN 1 END), 
    REV2= COUNT(CASE WHEN QTR = 1 AND MAIN_EKL =1 AND ACTIVE_FLAG = 1 THEN 1 END), 
    REV3= COUNT(CASE WHEN QTR = 1 AND MAIN_LAM =1 AND ACTIVE_FLAG = 1 THEN 1 END), 
    REV4= COUNT(CASE WHEN QTR = 1 AND MAIN_JAC =1 AND ACTIVE_FLAG = 1 THEN 1 END) 
    FROM MyTable 

이 select 문의 결과는 다음과 같습니다 :

REV1 REV2 REV3 REV4 
12  45  87 54 

답변

0

이 의지 상태와 매우 명확 감소보십시오.

DECLARE @Rev1 int 
DECLARE @Rev2 int 
DECLARE @Rev3 int 
DECLARE @Rev4 int 
SELECT 
    @Rev1 = SUM(CASE WHEN MAIN_SAT =1 THEN 1 ELSE 0 END), 
    @Rev2= SUM(CASE WHEN MAIN_EKL =1 THEN 1 ELSE 0 END), 
    @Rev3= SUM(CASE WHEN MAIN_LAM =1 THEN 1 ELSE 0 END), 
    @Rev4= SUM(CASE WHEN MAIN_JAC =1THEN 1 ELSE 0 END) 
FROM MyTable 
WHERE QTR = 1 
    AND ACTIVE_FLAG = 1 
2

당신은 (취향에 따라) 테이블 변수 또는 개별 변수를 만들 수 있습니다 여기에 내 선택 문입니다. 별도의 변수 예 :

DECLARE @Rev1 int 
DECLARE @Rev2 int 
DECLARE @Rev3 int 
DECLARE @Rev4 int 

SELECT 
@Rev1 = COUNT(CASE WHEN QTR = 1 AND MAIN_SAT =1 AND ACTIVE_FLAG = 1 THEN 1 END), 
@Rev2= COUNT(CASE WHEN QTR = 1 AND MAIN_EKL =1 AND ACTIVE_FLAG = 1 THEN 1 END), 
@Rev3= COUNT(CASE WHEN QTR = 1 AND MAIN_LAM =1 AND ACTIVE_FLAG = 1 THEN 1 END), 
@Rev4= COUNT(CASE WHEN QTR = 1 AND MAIN_JAC =1 AND ACTIVE_FLAG = 1 THEN 1 END) 
FROM MyTable 
관련 문제