2016-11-30 33 views
0

我正在嘗試更新具有特定日期的WTD值的表格。每次更新時,我都必須在條件中手動輸入日期。是否有任何方法可以在一定條件下動態傳遞日期值,以便我的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年9月1日」有一個變量,可以獲取來自同一個表日期本身由行動態

回答

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; 
+0

該查詢工作正常。我唯一的擔心是不是在查詢中靜態地放置日期,而是我們只需動態地傳遞日期,以便WTD值的每一行得到更新,並且日期值相應地在條件中不斷變化。在這裏,我正在嘗試更新整個表的WTD值。 –

+0

你是什麼意思?你的日期是什麼意思動態改變?澄清更多關於這 – Rahul

+0

我想通過日期中使用的條件根據我在日期列中的特定行的日期。例如。如果我想更新日期列中具有日期'2016-11-25'的行的WTD列,則查詢應該在所使用的條件中自動獲取此日期。無論如何要執行這種類型的更新? –

相關問題