2012-03-19 4 views
0

두 개의 열에서 두 개의 결과를 할당하고 싶습니다. 커서 루프 블록 안에 여러 개의 TSQL 문이 있습니다. @currentId (현재 행 Id)가 tablea의 max (col1)와 같을 때 tableb.col2의 값을 가져 오려고합니다.결과 열을 변수로 지정

SELECT MAX(col1), b.[col2] from tablea ta JOIN tableb tb on ta.id = tb.id 
WHERE ta.id = @currentId 

위의 사항은 물론 작동하지 않습니다. 또한 col1 및 col2 값을 검색하는 방법을 잘 모르겠습니다. 데이터 유형 :

col1 int 
col2 bit 

의견이 있으십니까?

답변

2

Agreegate 기능인 MAX를 사용하는 것처럼 GroupBy를 사용해야합니다.

Declare @valCol1 INT, @valCol2 INT 

    SELECT @valCol1 = MAX(col1), @valCol2 = b.[col2] from tablea ta JOIN tableb tb on ta.id = tb.id 
    WHERE ta.id = @currentId 

PRINT @valCol1 
PRINT @valCol2 

참고 : 쿼리가 여러 행을 반환하면 위 쿼리가 실패합니다.

관련 문제