因为要得到平均价,所以要用金额/数量,例如我用如下的语句.
insert into T_Temp (number,money,price) select M.Number,M.money,M.money/m.number from Table2 as M
但是有时候m.number的数量会为零,请问这种情况下面该怎么办呢?大家有什么好的建议?

解决方案 »

  1.   

    你应该在表中这样设计,让price自动计算,而不是在这里计算好后再insert进表中
    这样的话你就可以控制price的值了(用if  then),
      

  2.   

    insert into T_Temp (number,money,price) select M.Number,M.money,case m.number when 0 then 0 else M.money/m.number end as price from Table2 as M
      

  3.   

    ..............................
     number.Text:=rp.fieldbyname('num').AsString;
     money.Text:=rp.fieldbyname('mon').AsString;
    if money.text='0' then
    begin
     price.text:='0';
    end
    else
    begin
     price.text:=trim(formatfloat('0.000',strtofloat(number.text)/strtofloat(price.text)));
    end;
     rp.Close;
     rp.CommandText:='update  rp_record set pri='''+price.text+''' where  to_char(date1,''yyyy-mm-dd'')='''+FormatDateTime('yyyy-mm-dd',dtLUDate.Date)+'''';
     rp.Execute;看看,对你有用吗?
      

  4.   

    ..............................
     number.Text:=rp.fieldbyname('num').AsString;
     money.Text:=rp.fieldbyname('mon').AsString;
    if money.text='0' then
    begin
     price.text:='0';
    end
    else
    begin
     price.text:=trim(formatfloat('0.000',strtofloat(number.text)/strtofloat(money.text)));
    end;
     rp.Close;
     rp.CommandText:='update  rp_record set pri='''+price.text+''' where  to_char(date1,''yyyy-mm-dd'')='''+FormatDateTime('yyyy-mm-dd',dtLUDate.Date)+'''';
     rp.Execute;不好意思,上面写错了