2017-04-05 6 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

でクエリを試すことができます正しい出力を与える
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

関連する問題