将PLSQL select语句转换为更新
伙计们,我有这样的问题 我知道如何编写一个好的select语句,但不知道如何将其转换为相应的更新 我还在学习plsql 这是我的选择将PLSQL select语句转换为更新,plsql,Plsql,伙计们,我有这样的问题 我知道如何编写一个好的select语句,但不知道如何将其转换为相应的更新 我还在学习plsql 这是我的选择 select * --count(*) from POLISY_OT ot join polisy p on p.poli_id = ot.ot_poli_id join sou.rai_skl rs on rs.ot_id = ot.ot_id where ot_under_promil = 0 and ot_skladka_rok <&g
select * --count(*)
from POLISY_OT ot
join polisy p on p.poli_id = ot.ot_poli_id
join sou.rai_skl rs on rs.ot_id = ot.ot_id
where ot_under_promil = 0
and ot_skladka_rok <> ot_skladka_netto_rok
and ot_rodzaj_um = 'OP'
and ot_rodzaj = 'D'
and ot_produkt_id = 17
and p.poli_status in ('AK', 'CZ')
and rs.skl_roczna = ot.ot_skladka_rok;
现在我想用一个更新来结束它,并创建类似这样的东西
update (
select * --count(*)
from POLISY_OT ot
join polisy p on p.poli_id = ot.ot_poli_id
join sou.rai_skl rs on rs.ot_id = ot.ot_id
where ot_under_promil = 0
and ot_skladka_rok <> ot_skladka_netto_rok
and ot_rodzaj_um = 'OP'
and ot_rodzaj = 'D'
and ot_produkt_id = 17
and p.poli_status in ('AK', 'CZ')
and rs.skl_roczna = ot.ot_skladka_rok)
set ot_skladka_rok = ot_skladka_netto_rok;
首先,我真的希望你不是一个要求家庭作业帮助的学生。那真让我讨厌 假设不是这样,考虑到您没有在整个过程中包含表别名,所以很难准确地判断哪些列属于哪些表 我这样理解是因为您希望根据另一个表中的值更新列,将表更新限制为与第三个表匹配的记录 所以我想你想要这样的东西:
UPDATE polisy_ot ot
SET ot_skladka_rok =
(SELECT ot_skladka_netto_rok
FROM sou.rai_skl rs
WHERE rs.ot_id = ot.ot_id
AND rs.skl_roczna = ot.ot_skladka_rok)
WHERE ot_under_promil = 0
AND ot_skladka_rok <> ot_skladka_netto_rok
AND ot_rodzaj_um = 'OP'
AND ot_rodzaj = 'D'
AND ot_produkt_id = 17
AND EXISTS (SELECT NULL
FROM polisy p
WHERE p.poli_id = ot.ot_poli_id
AND p.poli_status IN ('AK', 'CZ'))
祝你好运
炖肉非常感谢。我不想占任何人的便宜,我只是想学点东西:所以这和存在就是你处理我们现在不能使用连接语句这一事实的方式,对吗?很好,很高兴这对你有用。请将我的答案标记为正确,并回答您的问题,这样我才能获得声誉。