以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 聚合函数计算错误? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=191928) |
-- 作者:lur320 -- 发布时间:2024/5/16 11:28:00 -- 聚合函数计算错误? 为啥? 应该是0/100+50/100,结果应该是0.5 我实际上的代码是: totalsto = DataTables("异常记录").sqlCompute("sum(timespa*(1-停机/100))", "产品批 结果算下来是1.72, 应该是0.6+1.1/2,而不是1.72
[此贴子已经被作者于2024/5/16 11:31:25编辑过]
|
-- 作者:有点蓝 -- 发布时间:2024/5/16 11:33:00 -- 改为datatable.sqlcompute datatables("某表").sqlcompute
|
-- 作者:lur320 -- 发布时间:2024/5/16 12:35:00 -- 不都是datatables(xxxx)吗?有什么区别? |
-- 作者:lur320 -- 发布时间:2024/5/16 12:37:00 -- 教程里面的
[此贴子已经被作者于2024/5/16 12:37:37编辑过]
|
-- 作者:lur320 -- 发布时间:2024/5/16 12:40:00 -- 并且报错
|
-- 作者:lur320 -- 发布时间:2024/5/16 12:47:00 -- totalsto = DataTables("异常记录").sqlCompute("sum(timespa*(1-停机/100))", "产品批号=\'" & dr("产品批号") & "\' and (生产岗位 like \'%内包%\' or 生产岗位 like \'%外包%\')") dr("损失数量") = qty / (produtime - totalsto) * sto If dr("产品批号") = "240110529" Then MessageBox.Show(totalsto) End If 为何算出来是1.72? 0.62+1.1才是1.72,但sqlcompute 的公式是sum(timespa*(1-停机/100))
|
-- 作者:有点蓝 -- 发布时间:2024/5/16 13:32:00 -- 计算结果不会有问题,有也是数据问题,或者自己公式有问题 |
-- 作者:lur320 -- 发布时间:2024/5/16 14:00:00 -- 那要计算每个批次的持续时间*(1-产出量/100)应该怎么改? DataTables("异常记录").sqlCompute("sum(timespa*(1-停机/100))" [此贴子已经被作者于2024/5/16 14:03:27编辑过]
|
-- 作者:有点蓝 -- 发布时间:2024/5/16 14:08:00 -- 改为高精度列:http://www.foxtable.com/webhelp/topics/1829.htm |
-- 作者:lur320 -- 发布时间:2024/5/16 14:26:00 -- 原因查到了,但是更晕了,不理解。 这里改为*0.01 sqlCompute("sum(timespa*(1-停机*0.01))"
|