2016-10-17 4 views
0

데이터 정렬을 필터링하려고 할 때 내 BETWEEN 조건이 작동하지 않는 이유는 무엇입니까? 그것은 전혀. 누구든지 내 코드를 살펴보고 내가 뭘 잘못하고 있는지 알려주거나, 아니면 7 월에서 9 월 말까지 레코드를 걸러 낼 수있는 대체 방법을 제안 할 수 있습니까?Where 절 - 조건 오류 사이

SELECT A.[Name] AS ResourceName, 
    A.[ID] AS ResourceID, 
    CONVERT(VARCHAR(10),A.[STRT_Date],101) AS StartDate, 
    CONVERT(VARCHAR(10),A.[END_Date],101) AS EndDate, 
    CASE WHEN A.[END_Date] > A.[STRT_Date] THEN C2.[DY_OF_CAL_NUM] - C1.[DY_OF_CAL_NUM] 
     WHEN A.[END_Date] IS NULL and A.[STRT_Date] IS NOT NULL THEN C3.[DY_OF_CAL_NUM] - C1.[DY_OF_CAL_NUM] 
     WHEN A.[END_Date] = A.[STRT_Date] THEN 1 
    END AS AgeCalendar 
FROM [Report] AS A  
    INNER JOIN [Dim] AS B 
    ON A.[ID] = B.[ID] 
    LEFT JOIN [dbo].[DT_DIM] AS C1 
    ON CAST(A.STRT_Date AS DATE) = C1.[CAL_DT]  
    LEFT JOIN [dbo].[DT_DIM] AS C2 
    ON CAST(A.END_Date AS DATE) = C2.[CAL_DT]  
    LEFT JOIN [dbo].[DT_DIM] AS C3 
    ON CAST(GETDATE() AS DATE) = C3.[CAL_DT] 
WHERE 1 = 1 
AND  A.[STRT_Date] BETWEEN '07/01/2016' AND '09/30/2016' 
AND  A.[Name] like '%S-Info%' 
OR  A.[Name] like '%S-Dep%' 
OR  A.[Name] like '%S-Can%' 
OR  A.[Name] like '%S-Doc%' 

답변

2

()Or 사업자 랩 : 현재 어떻게됩니까

WHERE A.[STRT_Date] BETWEEN '07/01/2016' AND '09/30/2016' 
AND (A.[Name] like '%S-Info%' 
    OR A.[Name] like '%S-Dep%' 
    OR A.[Name] like '%S-Can%' 
    OR A.[Name] like '%S-Doc%') 

은 그 기록은 그렇지가 선택됩니다 날짜 사이에있는 경우에도, '%S-Doc%' 같이하는 Name이있는 경우. 유효한 Name의 모든 변형을 래핑하면 날짜와 "다음 조건 중 하나"사이에 있어야한다고 말합니다.

+1

감사합니다 ... 나는 작은 것이어야한다는 것을 알고있었습니다. 감사합니다! – smul86

+1

당신은 환영합니다 :) –

+1

사이트가 나를 허용 할 때 upvote/aacept 대답. :) – smul86