kcl是计算字段var
e:double;
begin  if not goodsqy.fields[0].isnull then
   begin
    squ.Close;
    squ.SQL.clear;
    squ.SQL.Add('select sum(onhand)from onhand where goodsid=:goodsid  group by goodsid');
    squ.params[0].asstring:=goodsqy['goodsid'];
    squ.prepare;
    squ.Open;
    e:=squ.Fields[0].asfloat;
    goodsqy['kcl']:=e;
   end;

解决方案 »

  1.   

    这样的计算字段当然慢啦, 语句写到原 sql 里select ..., sum(onhand) 
    from xxx, onhand, ...
      inner join xxx.goodsid = onhand.goodsid
    group by goodsid
      

  2.   

    to comanche
    你又出现了,太可怕了。
    不知怎么称呼?请别见怪。在此先谢了!
    我原来执行是select * from goods ,库存量从别的表中得到。
    你的意义是这样
    select a.* form goods a inner join select sum(b.onhand) from onhand b group  by  b.goodsid on a.goodsid=b.goodsid
      

  3.   

    to comanche
    你又出现了,太可怕了。
    不知怎么称呼?请别见怪。在此先谢了!
    我原来执行是select * from goods ,库存量从别的表中得到。
    你的意义是这样
    select a.* form goods a inner join select sum(b.onhand) from onhand b group  by  b.goodsid on a.goodsid=b.goodsid
      

  4.   

    select sum(b.onhand),a.name from onhand b    inner join  goods a  on a.goodsid=b.goodsid   group  by  b.goodsid,a.name 
      

  5.   

    o, 好像还是熟客嘛 !@$@$@$!@#$!, 怎么说起来怪怪的呵计算字段一般要用那种可以立即取到的值, 比方本记录其它字段啦, 内存变量啦还有看到这个贴的可以加偶的 msn: [email protected], 有间可以聊聊技术,人生,YY哈哈呵呵