gpt4 book ai didi

sql - 仅连接日期小于另一个字段中的最大日期的行

转载 作者:行者123 更新时间:2023-12-04 00:40:22 25 4
gpt4 key购买 nike

假设我有两张 table 。一张包含员工信息和员工获得晋升天数的表格:

Emp_ID     Promo_Date
1 07/01/2012
1 07/01/2013
2 07/19/2012
2 07/19/2013
3 08/21/2012
3 08/21/2013

还有一张 table ,每天都有员工完成销售:

Emp_ID     Sale_Date
1 06/12/2013
1 06/30/2013
1 07/15/2013
2 06/15/2013
2 06/17/2013
2 08/01/2013
3 07/31/2013
3 09/01/2013

我想连接这两个表,以便只包含小于最大促销日期的销售日期。所以结果看起来像这样

Emp_ID     Sale_Date     Promo_Date
1 06/12/2013 07/01/2012
1 06/30/2013 07/01/2012
1 06/12/2013 07/01/2013
1 06/30/2013 07/01/2013

其余的 Emp_ID 依此类推。我尝试使用左连接来做到这一点,效果是

left join SalesTable on PromoTable.EmpID = SalesTable.EmpID and Sale_Date 
< max(Promo_Date) over (partition by Emp_ID)

但显然我不能在联接中使用聚合,而且我已经知道我也不能在 where 语句中使用它们。我不知道还能如何进行。

最佳答案

最长促销日期为:

select emp_id, max(promo_date)
from promotions
group by emp_id;

有多种方法可以在该日期之前获得销售额,但这是一种方法:

select s.*
from sales s
where s.sales_date < (select max(promo_date)
from promotions p
where p.emp_id = s.emp_id
);

关于sql - 仅连接日期小于另一个字段中的最大日期的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31941909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com