1

次の2つの条件を満たす単一のテーブルからのレコードを表示するレポートを生成しようとしています。

1) "D" ='ERR'であり、レコードは1週間未満です。

- また -

2) "D" ='X' OR'Y'かつ、レコードが1時間以上前のものです。

要件1から始めましたが、正しいロジックを適用して同じクエリで両方の要件を実行する方法がわかりません。レコードをレポートに表示するには、2つの条件のいずれかを適用できます。また、条件#2には、実際にはOR演算子も必要です。

このレポートを過去X時間(1/2/4/8)からも機能するように変更する予定ですが、このサイトの別の投稿でその質問に対処していると確信しています。

   SELECT "A", "B", "C"
     FROM Schema."Table" 
    WHERE "D"='ERR' AND TimeStamp >= (CURRENT_TIMESTAMP - 7 DAYS)
 ORDER BY TimeStamp DESC
4

2 に答える 2

4

を使用する()場合は、条件をグループ化して、目的の出力を取得できます。

 SELECT "A", "B", "C"
       FROM Schema."Table" 
       WHERE ("D"='ERR' AND TimeStamp >= (CURRENT_TIMESTAMP - 7 DAYS)) OR
    (("D" = 'X' or "Y" = 'Y') and TimeStamp > (CURRENT_TIMESTAMP - 1 HOURS))
       ORDER BY TimeStamp DESC
于 2012-09-11T18:27:03.237 に答える
1

ブラケットを使用して、条件を OR で区切ります。

SELECT "A", "B", "C"
FROM Schema."Table" 
WHERE ("D"='ERR' AND TimeStamp >= (CURRENT_TIMESTAMP - 7 DAYS))
      OR
      (("D" = 'X' or "Y" = 'Y') AND (TimeStamp) > (CURRENT_TIMESTAMP - 1 HOURS))
ORDER BY TimeStamp DESC
于 2012-09-11T18:31:28.243 に答える