有没有办法一次性更新具有WTD值的表的列?

时间:2016-11-30 12:43:26

标签: mysql stored-procedures

我正在尝试使用特定日期的WTD值更新表。每次更新时我都必须在条件下手动输入日期。是否有任何方法可以在条件下动态传递日期值,以便我的WTD值一次更新?

这是我的更新查询:

update table1, (Select sum(sales) as sales from table1 where
day between subdate('2016-09-01', Interval weekday('2016-09-01') Day) and '2016-09-01') src 
set WTD_Sales=src.sales
where day='2016-09-01'

所以在这里我想用一个可以逐行从同一个表本身获取日期的变量替换静态添加日期'2016-09-01'

1 个答案:

答案 0 :(得分:0)

您的查询对我来说不对。使用JOIN更改如下所示。假设表中存在id列。

update table1 t1
join ( Select sum(sales) as sales, id, some_date_column
 from table1 
where day between subdate('2016-09-01', Interval weekday('2016-09-01') Day) 
and '2016-09-01') src on t1.id = src.id
set t1.WTD_Sales = src.sales
where t1.day = src.some_date_column;