如何使用sqlLITE中表y中的条件更新表x

时间:2017-04-22 18:05:37

标签: sql sqlite

我有2张桌子: 客户:

Client_name     varchar(20),
Client_id       int,
Insurance_years int, 
last_value      decimal(10,2),
new_value       decimal(10,2);

事故:

Client_id int,
Accident_year int;

我需要执行NEW_VALUE = LAST_VALUE +(0.08 * LAST_VALUE),对于 ACCIDENT_YEAR>表客户中的每个 CLIENT_ID ,只需增加8% 2000

对于客户 accident_year< 2000 和insurance_year> 6 我需要给他们10%的折扣 LAST_VALUE

1 个答案:

答案 0 :(得分:1)

您可以通过在where子句中进行过滤来完成此操作:

update customer
    set NEW_VALUE = LAST_VALUE + (0.08 * LAST_VALUE)
    where client_id in (select a.client_id from accident a);

我可以更简单地将其说成:

update customer
    set NEW_VALUE = LAST_VALUE * 1.08 
    where client_id in (select a.client_id from accident a);