2017-04-05 1 views
-1

아래 쿼리가 있는데 범위에있는 결과와 범위를 벗어난 결과가 모두 표시됩니다. P1이 범위를 벗어나서 P2가 범위 내에 있으면 P1에 범위를 벗어난 값이 표시되고 P2에는 아무 것도 표시되지 않아야하며 P2의 경우 P2가 범위를 벗어나고 P1이 범위 내에 있으면 P1에 공백이 표시되어야합니다 및 P1의 값.여러 조건을 사용하는 SQL 쿼리

SELECT DATEANDTIME,[P1],[P2] 
FROM REPORTDATA 
WHERE [P1] < '85' OR [P1] > '95' OR [P2] < '85' OR [P2] > '95' 

나는

을 예상대로이 쿼리 (BT)가 작동하지 않았다 시도

예상 출력 (Original Image) :

+ ------------- + ------ + ------ + 
| Date and Time | Param1 | Param2 | 
|    | Range | Range | 
|    | 35-50 | 70-80 | 
+ ------------- + ------ + ------ + 
| 12:35:00  |  | 82  | 
| 12.36   |  | 65  | 
| 12:37   | 17  | 85  | 
| 12:38   | 52  |  | 
| 12:39   | 25  |  | 
| 14:40   |  | 52  | 
+ ------------- + ------ + ------ + 
+2

방법에 대해 예를 들어 85과 95 여기서 P1 간의? – muffi

+0

정말 미안하지만 당신이 무엇을 요구하는지 이해할 수 없습니다. 질문에 약간의 구두점을 넣으시겠습니까? –

+1

여기서부터 시작하는 것이 좋습니다. http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –

답변

0

당신이 기대하지만 아래 확인 무엇 확실하지 :

SELECT DATEANDTIME,[P1],[P2] 
FROM REPORTDATA 
WHERE ([P1] < '85' OR [P1] > '95') 
    OR ([P2] < '85' OR [P2] > '95') 

또는 CASE :

로 쿼리를 시도 할 수 있습니다. 1,515,
SELECT DATEANDTIME,[P1],[P2], 
    CASE WHEN ([P1] < '85' OR [P1] > '95') OR ([P2] < '85' OR [P2] > '95') THEN 'value out of range' 
     ELSE 'value in range' 
    END AS INFO 
FROM REPORTDATA 

TEST주는 정확한 출력 :

declare @p1 int = 86 
declare @p2 int = 100 

SELECT getdate(),@p1,@p2, 
    CASE WHEN (@p1 < '85' OR @p1 > '95') OR (@p2 < '85' OR @p2 > '95') THEN 'value out of range' 
     ELSE 'value in range' 
    END AS INFO 
+0

아니요 작동하지 않음 –

+0

아니요 작동하지 않음 –

+0

"작동하지 않음"이란 의미는 무엇입니까? 모든 오류 또는 예상 출력 또는 전혀 출력? – PawelCz

관련 문제