请帮忙看下批量更新的问题
上次我问题表达不清这次在开贴请教,想把A表中的A.XZYH全部用B表里的B.XZYH覆盖,如果A.xzyh为空就用b填充、如果A。xzyh不为空就覆盖。a.yhh和b.yhh都是一对一yw_jbxx(a表 ) temp(b表)
yhh yhzh yhh yhzh
001 a 001 d
002 002 e
003 b 003 f
004 c 004 g
要求结果是(a表)成
yw_jbxx
yhh yhzh
001 d
002 e
003 f
004 g 其实就是用b表的记录替换a表的记录
update yw_jbxx set yhzh=(select yhzh from temp where yw_jbxx.yhh=temp.yhh) update yw_jbxx set yhzh=(select max(b.yhzh) from yw_jbxx a,temp b
where a.yhh=b.yhh
group by b.yhzh) update yw_jbxx set yhzh=(select max(b.yhzh) from yw_jbxx a,temp b
where a.yhh=b.yhh
group by b.yhh) 我试了 还是提示单行子查询返回多于一个行。
如果单独运行select max(b.yhzh) from yw_jbxx a,temp b
where a.yhh=b.yhh
group by b.yhh;
可以过,返回很多值。 如果b表有重复记录一定要加max()才可以.
我的语句:
update yw_jbxx set yhzh=(select max(yhzh) from temp
where yw_jbxx.yhh=temp.yhh
group by temp.yhh)
页:
[1]