2016-12-27 30 views
1

我有使用select語句查詢的列。我想將此列添加到我的表格中。該聲明是:如何使用從「select」語句傳播的值更新SQL中的列

select vd.*, a.rate from vacation_days vd left join Algorithm a on v d.work_days between a.day1 and a.day2 group by id

這將返回一列用十進制率每三行。 這就是我試圖做的:

update vacation_days set vacation_days.free=vd.days_CurrYear*(select vd.*, a.rate from vacation_days vd left join Algorithm a on v d.work_days between a.day1 and a.day2 group by id) where id; 

但是它給出了一個錯誤: 您不能指定目標表「vacation_days」的更新在FROM子句

請讓我知道我錯過了什麼。 感謝

回答

0

您可以使用相關子查詢:

update vacation_days 
    set free = days_CurrYear * (select a.rate 
           from Algorithm a 
           where vacation_days.work_days between a.day1 and a.day2 
           );