更新数据
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('update kucun set kucunliang=tuihuoliang+kucunliang where tuihuo.yaopinhao=kucun.yaopinhao');
ADOQuery2.ExecSQL;
我想把库存表(kucun)里的库存量(kucunliang)与退货表(tuihuo)里的退货量(tuihuoliang)相加,更新到库存量里,各位指点一下那里错了
[解决办法]
update kucun set kucunliang=tuihuo.tuihuoliang+kucunliang
from tuihuo
where tuihuo.yaopinhao=kucun.yaopinhao
[解决办法]
语句明显错误,库存表和退货表关联,语句里面却只有库存表,没有退货表,tuihuo.yaopinhao 这个字段就找不到了
这样写
ADOQuery2.SQL.Add('update kucun set kucunliang = b.tuihuoliang + a.kucunliang ');
ADOQuery2.SQL.Add('from kucun a inner join tuihuo b on (a.yaopinhao=b.yaopinhao)');
另外,你的退货表里面如果 同一个yaopinhao出现多条记录,那么就不能这样简单相加,这样加就是错的库存,要先sum退货表的库存,然后加到库存表
ADOQuery2.SQL.Add('update kucun set kucunliang = b.tuihuoliang + a.kucunliang ');
ADOQuery2.SQL.Add('from kucun a inner join (select yaopinhao,sum(tuihuoliang) tuihuoliang ');
ADOQuery2.SQL.Add('from tuihuo group by tuihuoliang) b on (a.yaopinhao=b.yaopinhao)');