我正在尝试生成一个报告,该报告显示满足以下两个条件之一的表中的记录:
1)“D”='ERR'并且记录不到一周。
- 或 -
2)“D”='X'或'Y'且记录超过一小时。
我已经开始使用需求#1,但我不知道如何在应用了正确逻辑的同一查询中执行这两个需求。要在报告上显示记录,可以应用这两个条件中的任何一个,条件#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
答案 0 :(得分: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
答案 1 :(得分: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