以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]compute的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91027)

--  作者:chnfo
--  发布时间:2016/9/28 0:01:00
--  [求助]compute的问题
一个表中有日期、供应商ID、商品ID、数量、单价。
因为数量和单价(每月同一商品ID的单价相同)都有小数,计算金额时取两位小数会有误差累计问题。


希望实现到了月末的时候,对各个供应商结算,对每种商品,先合计数量,再与单价相乘,得到金额,然后再取小数点精度。
每种商品结算金额=math.round(sum(数量)*单价,2)
然后再按供应商合并同类项得到供应商结算金额

直接用compute能实现否?
[此贴子已经被作者于2016/9/28 0:03:06编辑过]

--  作者:有点蓝
--  发布时间:2016/9/28 8:37:00
--  
compute不行,可以用SQLCompute
--  作者:chnfo
--  发布时间:2016/9/29 15:53:00
--  
这个恐怕用一个 sqlcompute是不行的吧。
1、要先按条件合计本月、这个供应商供应的商品明细,先分别合计其数量A
2、计算各商品的供应金额V=round(A*P,2)
3、再合计所有商品的金额SV=sum(V)

比如先用GroupTableBuilder要构建一个临时表,合计A,计算V
然后再compute一下这个V?


--  作者:有点蓝
--  发布时间:2016/9/29 16:32:00
--  
差不多这样了。可能用sql直接计算还好