当前位置: 首页 > 面试题库 >

在MySQL中,以过去的最近日期联接表

伯洋
2023-03-14
问题内容

我有一个要尝试编写的html" target="_blank">sqlite查询。我有两个表:

TableA(销售):ID销售日期

TableB(目标):ID目标日期

我从这样的TableA中进行选择:SELECT id,sales,date from TableA

现在到“棘手的”部分。我需要将TableB加入查询中,因为我需要TableA中 每一行的 TableB中的目标字段。
TableB仅包含某些日期的目标 ,而 TableA包含所有日期 。所以我不能只使用TableA.date = TableB.date

相反,对于TableA中的每一行,我都需要从TableB中获取过去的日期,而该日期是过去最接近TableA中日期的日期。希望我能够解释我的需要。无法弄清楚该怎么做。


问题答案:
SELECT a.id, a.sales, a.date, (SELECT TOP 1 Goal 
                               FROM TableB b WHERE b.date < a.date
                               ORDER BY b.date DESC) As Goal
FROM TableA a

过去的最近日期。



 类似资料:
  • 问题内容: 我需要从MySQL表中获取与当前日期最接近的日期。 这是我的桌子: 因此,如果查询今天运行,它将返回 任何帮助深表感谢。谢谢 问题答案:

  • 问题内容: 我刚刚从Gord Thompson那里得到了一个类似问题的大力帮助(通过在同一日期或最接近的先前日期(不仅是完全匹配)进行联接来合并两个表),但现在意识到我的数据不是我所期望的。事实证明,我的Lead_Dates可以晚于Product_Interest_Dates,这导致先前的SQL代码删除了这些情况。进一步来说: 我有两个表: 顾客ID Lead_Date Lead_Source 和

  • 问题内容: 给定此基准日期: 我想在列表中找到一个包含最接近日期的元组,但是它不能是更早的日期。 所以这里的输出应该是(它不能是第三个元组,因为那里的日期早于基准日期) 我的问题是,是否存在用于此类日期比较的任何模块?我试图先将所有数据更改为格式,然后进行比较,但是我的代码变得很丑陋,而且切片很多。 @编辑: 要测试的大清单: 要测试的大清单: 问题答案: 将日期转换为datetime对象,所以现

  • 我有两个日期字段: 开始日期和结束日期和临时日期。 我有一个列表,其中我在开始日期和结束日期之间返回了6条记录。我如何过滤记录并返回最接近临时日期的日期时间? 在示例记录中,我需要获得第二条记录,因为与临时日期相近。实例

  • 问题内容: 我有一个日期对象列表和一个目标日期。我想在列表中找到最接近目标日期的日期,但仅找到目标日期之前的日期。 示例:2008-10-1 2008-10-2 2008-10-4 目标日期为2008-10-3,我想获得2008-10-2 最好的方法是什么? 问题答案: Sietse de Kaper解决方案采用了 反向 排序的列表,绝对不是最自然的解决方案 Java中的自然排序顺序遵循递增的自然

  • 问题内容: 例如,我有2个时间表:T1 和T2 我需要从T1获取最接近T2的时间。这些表之间没有关系。应该是这样的: 但是我不明白。有什么建议? 问题答案: 我相信这是您要查找的查询: 确保时间列具有相同的日期部分,否则t2.time-t1.time部分将无法正常工作。 编辑 :感谢您的接受,但本的下面的答案是更好。它使用Oracle分析功能,性能会更好。