2013-09-06 3 views
0

내 원래 질문을 스크랩했습니다. 아마도 더 명확한 버전 일 것입니다.다른 값의 범위를 기반으로 미리 정의 된 값을 사용하는 방법

이것은 내가하려는 일입니다. 현재 나는 서브리스트가 EXISTS와 함께 도입되지 않을 때 SELECT리스트에서 하나의 표현식만을 지정할 수있다. ' 텍스트를 *

declare @X int 

SET @X=(
SELECT B.ID, 
Case 
When Getdate() Between '2012-11-01 00:00' AND '2013-10-31 23:59' then 731 
When Getdate() Between '2012-11-01 00:00' AND '2013-10-31 23:59' then 1096 
END FROM Booking B) 


Select 
B.Created - @X AS 'Bookings date less X' 
From Booking B 
+1

무엇 "맛"당신이 사용하고 있습니까? –

+0

X 앞에 쉼표? 질문에 대한 추가 정보를 입력하십시오. –

+0

SQL SERVER, thanks. – Mike

답변

2

하지 ... 당신이 두 번째 비트와 함께 할 노력하고 있지만,이 (당신은 SQL Server를 사용하는 가정) 처음에 당신을 도움이 무엇인지

declare @x integer; 

set @x = case WHEN Getdate() Between '2012-11-01 00:00' AND '2013-10-31 23:59' then -731 when Getdate() Between '2013-11-01 00:00' AND '2014-10-31 23:59' then 1 end; 

print @x 
을 강조
1

질문을 올바르게 이해하면 case statementvariable을 찾고 있습니다.

DECLARE @X int 

SELECT @X = 
    CASE WHEN Getdate() Between '2012-11-01 00:00' AND '2013-10-31 23:59' THEN -731 
    ELSE 
    CASE WHEN Getdate() Between '2013-11-01 00:00' AND '2014-10-31 23:59' THEN 1096 
    ELSE 
    NULL 
    END 

그런 다음 몇 가지 후속 문 : SQL의

CASE WHEN B.Created < @X THEN 'Hello' ELSE 'Not Hello' END 
+0

감사합니다. 자부심 님, 제 질문을 조금 더 명확하게 업데이트했습니다. 시간을 주셔서 감사합니다 .-) – Mike

관련 문제