在将数据库里面的数据计算并导出的时候小数太多。想将计算出来的数据只留2位小数并四舍五入,应该怎么样写

解决方案 »

  1.   


    用的是SQL 这个好像不能用把
      

  2.   

    SELECT *,
      (MFQTY*(isnull(SKZ,0)))L_SKZQTY,
      (QTY-(ISNULL(MRTQTY,0)-ISNULL(PRTQTY,0))) L_LOCQTY,
      ((ISNULL(ANTQTY,0)-ISNULL(VRTQTY,0))+ISNULL(PCTQTY,0)-QTY) L_JOBQTY,
      (STOCK-(QTY-(ISNULL(MRTQTY,0)-ISNULL(PRTQTY,0)))) L_STKQTY
       FROM HC_RESVT WHERE WO='1010001' OR JOBNO='1010001'
    这是SQL 
     要是能在结果里面计算就更好了。应为在SQL里面的话查询速度会不会慢下来
    我看了下程序里面。。
     dWt := adsMaster.FieldByName('MFQTY').AsFloat * adsMaster.FieldByName('WT').AsFloat;
        if (dWt < 10000) and (dWt > 0) then xlsApp.Cells[i,9].Value := '10000' else xlsApp.Cells[i,9].Value := inttostr(round(dWt));   //Round四舍五入,Trunc去小数他在导出的时候计算了一个没有10000等于10000的。还不知道能不能在这里设置。 我都不怎么懂Delphi 是搞.NTE 这个要修改下。。才临时学的