gpt4 book ai didi

Mysql:根据日期为产品选择新价格

转载 作者:太空宇宙 更新时间:2023-11-03 12:15:41 25 4
gpt4 key购买 nike

我们有一个每天运行一次的脚本,通过按日期查找新产品价格来更新关联系统的价格。例如:

ID | product_id | date       | price
------------------------------------
1 | 1 | 2014-03-01 | 199

2 | 1 | 2014-04-01 | 299

3 | 2 | 2014-03-11 | 150

4 | 2 | 2014-04-17 | 172

因此,我们的脚本在 4 月 1 日运行,并执行 SELECT * FROM table WHERE date='2014-04-01'; 然后使用该 product_id 列更新另一个系统新价格。这一切都很好。我们现在遇到了一个问题,如果系统有一天不运行,或者用户输入了过去的日期,系统将永远不会更新为新定价。

所以问题是:如果查询为每个不同的 product_id 选择最大(日期),其中日期 <= 今天,查询会是什么样子?

我已经尝试了 distinct() 和 group by 的各种方法,但始终无法获得我正在寻找的结果。结果是,当脚本在 4 月 2 日运行时,它发现最大日期<今天是 4 月 1 日,因此获取这些价格。

最佳答案

您可能正在寻找这个:

SELECT *
FROM table
WHERE date=(SELECT MAX(date) FROM table WHERE date<='2014-04-01')

或者如果产品可以有不同的日期:

SELECT t1.*
FROM table t1 INNER JOIN (SELECT product_id, MAX(date) max_date
FROM table
WHERE date<='2014-04-01'
GROUP BY product_id) t2
ON t1.product_id=t2.product_id AND t1.date=t2.max_date

关于Mysql:根据日期为产品选择新价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22335704/

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