多表关联的update语句

来源:百度知道 编辑:UC知道 时间:2024/05/31 22:01:25
update 个人工资表 a
set a.数量=(select b.数量 from 抛光信息表 b where a.卡号=b.卡号)
这样怎么总不行呀??报告错误:操作必须使用一个可更新的查询.
这样不行,那set a.工资=(select b.数量 from 抛光信息表 b where a.卡号=b.卡号)*(select b.单价 from 抛光信息表 b where a.卡号=b.卡号)就更不行了.出了什么问题呀??
怎么解决!

在这里不能用表名的别名,用下面的SQL就可以了:

update 个人工资表
SET 数量=
(select 数量 from 抛光信息表 where 卡号=个人工资表.卡号)

update 个人工资表
SET 工资=
(select 数量*单价 from 抛光信息表
where 卡号=个人工资表.卡号)

要保证
select b.数量 from 抛光信息表 b where a.卡号=b.卡号
查出来的是一条记录.
附后面那个可以改成:
set a.工资=(select b.数量*b.单价 from 抛光信息表 b where a.卡号=b.卡号)