首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

更新数据解决思路

2013-01-01 
更新数据ADOQuery2.CloseADOQuery2.SQL.ClearADOQuery2.SQL.Add(update kucun set kucunliangtuihuoli

更新数据
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)');

热点排行