【发布时间】:2020-11-25 23:16:04
【问题描述】:
我正在尝试获得以下信息: 客户列表以及在初始日期和最终日期(称为 D1 和 D2)之间向他们销售的金额 ($) 如果满足以下条件:上一次销售到 D1 之间的第一次销售之间的时间并且 D2 大于某个量 X。
例子:
D1 = 2020 年 1 月 1 日,D2 = 2020 年 12 月 31 日,X = 1 年。
客户 John 在 2020 年的首次购买是在 2020 年 1 月 15 日,而他之前的购买是在 2019 年 5 月 15 日。因此,John 不应出现在列表中(因为这两个日期之间相隔不到一年)。
客户 Bob 在 2020 年的第一次购买是在 2020 年 2 月 15 日,而他之前的购买是在 2019 年 1 月 10 日。Bob 应该连同在 D1 和 D2 之间出售给他的总金额一起出现在列表中.
我已尝试使用max() 来查找最后完成购买的日期,条件是它在 D1 之前。比如:
select max(date)
from Sales
where date<:D1
显然我可以做类似的事情(通过min())来找到 D1 之后的第一个购买日期。但是我如何同时做这两件事呢?
欢迎提出任何想法!
【问题讨论】:
-
一些样本数据和预期结果会澄清。
标签: sql sql-server tsql