在子查询中显示特定日期减去 14 天的所有行

Posted

技术标签:

【中文标题】在子查询中显示特定日期减去 14 天的所有行【英文标题】:Show all rows from a specific date subtract 14 days in a subquery 【发布时间】:2020-11-03 21:52:27 【问题描述】:

我正在使用以下查询从 3 个不同的表中输出数据。目前它正在输出 800 行,所以我试图缩小范围:

我想要 AgreementDate 为 2013-05-05(这是一个随机示例)减去该日期的 14 天的所有行。

尝试在我的第二个 SELECT 中执行此操作,但没有返回任何行。

感谢您的帮助。

SELECT RA.CustID, RA.AgreementDate, BR.RentalCost, B.BookID, B.Name, 
FROM RentalAgreement RA 
JOIN  BookRented BR
ON (BR.AgreementID = RA.AgreementID)
JOIN Book B
ON(BR.BookID = B.BookID)
WHERE RA.AgreementDate IN (SELECT AgreementDate
                           FROM RentalAgreement
                           WHERE AgreementDate = *SpecificDate - 14Days*);

【问题讨论】:

【参考方案1】:

我不明白你为什么有一个子查询:

SELECT RA.CustID, RA.AgreementDate, BR.RentalCost, B.BookID, B.Name, 
FROM RentalAgreement RA JOIN
     BookRented BR
     ON BR.AgreementID = RA.AgreementID JOIN
     Book B
     ON BR.BookID = B.BookID
WHERE RA.AgreementDate = DATE '2013-05-05' - INTERVAL '14' DAY;

我猜你是在使用基于sqlplus标签的Oracle。

【讨论】:

以上是关于在子查询中显示特定日期减去 14 天的所有行的主要内容,如果未能解决你的问题,请参考以下文章

在子查询中迭代

使用 Mongoid 和 Ruby 查询最近 30 天的日期范围?

转换以字符串格式存储的日期值并减去 mongodb 中的当前日期

SQL 根据当前日期减去两天选择记录

我们如何通过mysql查询显示特定患者的记录[重复]

oracle求查询连续三天的数据