@[TOC]今天犯了一个很离谱的sql错误(这里写自定义目录标题)
#SQL语义不对
UPDATE A a
SET a.SJCYXTFE = (
SELECT fundvol FROM B b WHERE a.XTCPDM = b.fundcode AND a.XTHTBH = b.contractno AND a.SJCYXTFE != b.fundvol ),
a.SJCYXTJE = (select c.fundvol from C c where a.XTCPDM = c.FUNDCODE and a.xthtbh = c.contractno and a.SJCYXTJE != c.fundvol),
a.sjcyxtfebdrq = (select d.lastupdatedate from D d where a.XTCPDM =d.FUNDCODE and a.xthtbh = d.contractno and a.sjcyxtfebdrq != d.lastupdatedate)where
EXISTS (SELECT e.fundvol FROM E e WHERE a.XTCPDM = e.fundcode AND a.XTHTBH = e.contractno AND a.SJCYXTFE != e.fundvol )
这个情况是因为一个sql在执行的时候会从where开始,那么上述sql在执行的过程中满足where的更新语句字段仅有一个,所以并不会完全执行,语义不对