一尘不染

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

sql

我有一个要尝试编写的sqlite查询。我有两个表:

TableA(销售):ID销售日期

TableB(目标):ID目标日期

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

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

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


阅读 190

收藏
2021-03-10

共1个答案

一尘不染

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

过去的最近日期。

2021-03-10