以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  聚合函数计算错误?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=191928)

--  作者:lur320
--  发布时间:2024/5/16 11:28:00
--  聚合函数计算错误?
 
图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

为啥?

应该是0/100+50/100,结果应该是0.5


我实际上的代码是:
totalsto = DataTables("异常记录").sqlCompute("sum(timespa*(1-停机/100))", "产品批


图片点击可在新窗口打开查看此主题相关图片如下:捕我获.png
图片点击可在新窗口打开查看

结果算下来是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
--  

图片点击可在新窗口打开查看此主题相关图片如下:阿斯顿.png
图片点击可在新窗口打开查看

教程里面的
[此贴子已经被作者于2024/5/16 12:37:37编辑过]

--  作者:lur320
--  发布时间:2024/5/16 12:40:00
--  
 并且报错

图片点击可在新窗口打开查看此主题相关图片如下:阿斯顿.png
图片点击可在新窗口打开查看


--  作者: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
           

图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

为何算出来是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))"


图片点击可在新窗口打开查看此主题相关图片如下:123.png
图片点击可在新窗口打开查看


[此贴子已经被作者于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))"