SQL Where子句在30天内加入表日期的时间范围
大家好我有一个SQL问题。我有一个我创建的表格,我想在查询中使用它。SQL Where子句在30天内加入表日期的时间范围
下面的示例(我已创建,以便不共享原始数据)。我相信这将成为我需要帮助的重要部分。
ALL - 包含数据库中的数据,包括日期。
WEB(下) - 表我已经加入
DATE ID ORDER NUMBER
21/06/2016 RED 11148
22/06/2016 BLUE 16996
23/06/2016 RED 11000
24/06/2016 GREEN 17783
25/06/2016 RED 12487
26/06/2016 BLUE 12837
27/06/2016 RED 11755
28/06/2016 GREEN 11698
我查询的开始是这样的:
SELECT
I.DATE,
I.ORDER_NUMBER,
I.ID,
I.FLOW,
I.MEDIUM,
I.REASON,
I.SUB_REASON
FROM WEB D
JOIN ALL I
ON D.ORDER_NUMBER = I.ORDER_NUMBER
我需要的是一个WHERE语句产生如下 - 我想拉从WEB中的每个DATE加上30天后的所有内容。
所以要澄清,如果存在于WEB
DATE ID ORDER NUMBER
21/06/2016 RED 11148
我想拉的所有匹配ORDER_NUMBER从所有这一切都发生在30天内发布21/06/2016(在WEB举行的日期)。
所以输出看起来像这样。正如你所看到的,返回的日期在加入表格中的日期之后的30天内。
DATE ORDER_NUMBER ID FLOW MEDIUM REASON SUB_REASON
26/06/2016 11148 RED IN WEB IN ONLINE
在此先感谢!
尝试: WHERE i.DATE BETWEEN d.DATE AND d.DATE+30
在抽象的真实数据,你忽略了这个日期是一个保留字等等每个事件都需要双引号,例如 WHERE i."DATE" BETWEEN d."DATE" AND d."DATE"+30
我想这可能是我之后只有问题是我的数据集都很大,所以它可能会超载一点。如果我能为它出口,我会标记为已回答。谢谢 – nohholmez
与SYSDATE和SYSDATE-30,东西之间应使用类似以下
SELECT
I.DATE,
I.ORDER_NUMBER,
I.ID,
I.FLOW,
I.MEDIUM,
I.REASON,
I.SUB_REASON
FROM WEB D
JOIN ALL I ON D.ORDER_NUMBER = I.ORDER_NUMBER
WHERE I.DATE BETWEEN sysdate-30 and sysdate
希望这有助于
谢谢。那我怎么会坐在我的查询结尾(我是这个新手),它会和WEB表匹配吗,还是只回收一切? – nohholmez
如果没有使用这个编辑过的查询,你在where子句中是否有其他条件 –
为了澄清,提供'ALL'的样本数据和期望的结果。 –