如何基于从另一列的MySQL MAX的一天更新一列

问题描述 投票:0回答:1

-I我在我的表中的列进行更新。不过,我想只有TP基于从该表中的另一列中的MAX日行执行更新。可以看出下面通常类别列需要每当日期为MAX在日期栏进行更新。

现在这是有点手动工作,因为我有明确定义的日期就像下面的代码。我想代码是这样的更新,只有当日期是MAX。

日期格式为YYYY-MM-DD

Product Number  Date        category
A               2018-01-01   x 
B               2019-01-01   y
C               2020-01-01   z   
D               2021-01-01       


UPDATE SALES_TOTAL LEFT JOIN Masterdata_MAPEBIAS on SALES_TOTAL.`Product Number` = Masterdata_MAPEBIAS.`Item` and Date = '2021/01/01'
SET
SALES_TOTAL.`Category` = Masterdata_MAPEBIAS.Category;
mysql
1个回答
1
投票

加入对一个子查询获取最大的日期。我还利用别名使查询更容易阅读

UPDATE sales_total t
LEFT JOIN Masterdata_MAPEBIAS m  ON t.`Product Number` = m.item
JOIN (SELECT MAX(date) max_date FROM sales_total) max ON max.max_date = t.sales_date
SET t.category = m.category
© www.soinside.com 2019 - 2024. All rights reserved.