我感觉像是一个示例更好地说明了我的问题。
我要做的是从他们最近的购买日期开始,每年为每个客户选择每笔购买。因此,如果客户A的最新购买是2017年1月5日,那么我希望他们从2016年1月5日到2017年1月5日购买。但是,如果某人的最新购买是2017年2月2日,我只想从2016年2月2日到2月购买他们2017年2月2日。
我已经可以手动输入日期,但是我不能这样做,因为我想将此数据实现到自动化模型
与一个为每个客户提供最新时间的子查询,然后在连接条件下使用它。
SELECT p.*
FROM purchases AS p
JOIN (SELECT client_id, MAX(purchase_data) AS maxdate
FROM purchases
GROUP BY client_id) AS m
ON p.client_id = m.client_id
AND p.purchase_date BETWEEN DATE_SUB(m.maxdate, INTERVAL 1 YEAR) AND m.maxdate