以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何实现取最小值? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=187073) |
-- 作者:lin98 -- 发布时间:2023/6/19 15:50:00 -- 如何实现取最小值? 如何实现表A的第一列第行数据对表B的第一列的所有数据行进行相除,如表C的数据将余数(表CT第五列)最小的数据赋值到表A? 注: 1.表A,表B,表C之间都关联字段,如何实现? 2.表A,表B,表C之间如果没有关联字段,就无法实现计算,那就随便加个临时列临时编号进行统计,如何实现?
|
-- 作者:有点蓝 -- 发布时间:2023/6/19 16:00:00 -- 直接遍历2个表就行了 for each ar as row in tables("表A").rows dim min as integer = 999999 for each br as row in tables("表B").rows dim a as integer = br("第一列") mod ar("第一列") min = math.min(min,a) next ar("第四列") = min next
|
-- 作者:lin98 -- 发布时间:2023/6/19 16:27:00 -- For Each ar As Row In Tables("表A").rows Dim min As Integer = 999999 For Each br As Row In Tables("表B").rows Dim a As Integer = br("第一列") Mod ar("第一列") min = math.min(min, a) Next ar("第二列") = br("第一列") / ar("第一列") ar("第三列") = ar("第一列") * (br("第一列") / ar("第一列")) ar("第四列") = min Next 表A的第二列、第三列没计算,加上红字代码,报错 br未声明,它可能因保持无法访问,如何实现一楼表A的第二列、第三列的值?
|
-- 作者:有点蓝 -- 发布时间:2023/6/19 16:40:00 -- 和计算余数的方法完全一样啊,定义多几个变量,在第二个for循环里计算 |
-- 作者:lin98 -- 发布时间:2023/6/19 17:26:00 -- For Each ar As Row In Tables("表A").rows Dim min As Integer = 999999 Dim min2 As Integer = 999999 Dim min3 As Integer = 999999 For Each br As Row In Tables("表B").rows Dim a As Integer = br("第一列") Mod ar("第一列") min = math.min(min, a) Dim b As Integer = br("第一列") / ar("第一列") min2 = math.min(min, b) Dim c As Integer = ar("第一列") * (br("第一列") / ar("第一列")) min3 = math.min(min, c) Next ar("第二列") = min2 ar("第三列") = min3 ar("第四列") = min Next 计算结果,与一楼表A不一样,如图 现二表都增加类别,如何实现表A的“第一列,类别列”每行数据对表B的“第一列,类别列”的所有数据行进行相除,计算表A的"第二列、第三列、第四列"的值?如下图 |
-- 作者:有点蓝 -- 发布时间:2023/6/19 17:31:00 -- min2 = math.min(min2 , b) |
-- 作者:lin98 -- 发布时间:2023/6/19 18:03:00 -- For Each ar As Row In Tables("表A").rows Dim min As Integer = 999999 Dim min2 As Integer = 999999 Dim min3 As Integer = 999999 For Each br As Row In Tables("表B").rows Dim a As Integer = br("第一列") Mod ar("第一列") min = math.min(min, a) Dim b As Integer = br("第一列") / ar("第一列") min2 = math.min(min2, b) Dim c As Integer = ar("第一列") * (br("第一列") / ar("第一列")) min3 = math.min(min3, c) Next ar("第二列") = min2 ar("第三列") = min3 ar("第四列") = min Next 上面代码执行后如图 还是无法实现,表A的效果 |
-- 作者:有点蓝 -- 发布时间:2023/6/19 19:58:00 -- 只能是自己的计算公式有问题,既然"第三列"="第一列" * "第二列",其实和表B没有什么关系,直接计算就行,没有必要放中间循环了 ar("第三列") = ar("第一列") * ar("第二列")
|