Foxtable(狐表)用户栏目专家坐堂 → 数据平均问题


  共有7208人关注过本帖树形打印复制链接

主题:数据平均问题

帅哥哟,离线,有人找我吗?
刘林
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
数据平均问题  发帖心情 Post By:2022/7/21 19:37:00 [只看该作者]

If tb10.DataTable.DataCols.Contains("平均成绩")=False
    tb10.DataTable.DataCols.Add("平均成绩",Gettype(Double))
    tb10.DataTable.DataCols("平均成绩").SetFormat("0.00")

End If

 

分班成绩只有一个数据621.5

 

 

Dim avg1 As Integer = tb5.Compute("avg(分班成绩)","预分班='" & r("班级") & "'")

但avg1=622.00   

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
fangdejin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:411 积分:4321 威望:0 精华:0 注册:2018/7/18 21:08:00
  发帖心情 Post By:2022/7/21 20:02:00 [只看该作者]

你或者换个平均算法 

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/21 20:25:00 [只看该作者]

试试:Dim avg1 As Integer = tb5.sqlCompute("avg(分班成绩)","预分班='" & r("班级") & "'")

 回到顶部
帅哥哟,离线,有人找我吗?
刘林
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2022/8/11 10:31:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:8jc91gkri8v3e%hhdqk7$q1.png
图片点击可在新窗口打开查看
试了还是不行,我只测试了一个数据,4班只有一个661.5,但平均为662,一直不明白,到底哪里有问题,这算不算是bug
[此贴子已经被作者于2022/8/11 10:31:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/11 10:51:00 [只看该作者]

把成绩列改为高精度类型

 回到顶部
帅哥哟,离线,有人找我吗?
刘林
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2022/8/11 11:12:00 [只看该作者]

If tb10.DataTable.DataCols.Contains("平均成绩")=False
    tb10.DataTable.DataCols.Add("平均成绩",Gettype(Decimal))
    tb10.DataTable.DataCols("平均成绩").SetFormat("0.00")

还是一样


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/11 11:22:00 [只看该作者]

原来表格的分班成绩列呢,改为高精度了吗?
[此贴子已经被作者于2022/8/11 11:22:19编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
刘林
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2022/8/11 11:41:00 [只看该作者]

改了,还是不行,是不是跟是用的fill方式有关呢

Dim tb5 As Table=Tables("学生信息A_table5")
Dim tb10 As Table=Tables("学生信息A_table10")
Dim text1 As WinForm.TextBox= e.Form.Controls("textbox1")
Dim cb3 As WinForm.ComboBox= e.Form.Controls("combobox3")
Dim cb4 As WinForm.ComboBox= e.Form.Controls("combobox4")
Dim nj As String= e.Sender.text
tb5.F   ill("Sel ect _identify ,学生姓名,身份证件号,联系电话,班级,性别,分班成绩,指定分班,预分班,备注 From {学生信息} where 学校名称='" & _usergroup & "' and 年级='" & nj & "' and  状态 Like '%在读%' order by 学生姓名","user",False)
tb5.AllowEdit=True
DataTables("学生信息A_table5").GlobalHandler.DataColChanged = True
Dim njdm As String =   "'%" & nj & "%'"
tb10.Fill("Se  lect _identify ,单位,部门 as 班级,角色,密码,是否可用,姓名 as 班主任,分班人数 From {单位用户} where 单位='" & _usergroup & "' and 部门 like " & njdm & "  order by 部门","user",False)
Dim bs As Integer= DataTables("单位用户").SQLCompute("count(部门)"," 部门 like " & njdm & " And 单位= '" & _usergroup &"'" )
tb10.SetColVisibleWidth("班级|20|班主任|20|分班人数|20")
tb10.AutoSizeCols
tb10.AllowEdit=True
Dim bslist As String
For i As  Integer=1 To bs
    bslist=bslist & i & "|"
Next
bslist = "|  |" & bslist
bslist=bslist.trim("|")
For Each c As Col In tb5.Cols
    If c.Name="指定分班"
        c.AllowDirectType=False
        c.ComboList = bslist
    End If
Next
For Each c As Col In tb10.Cols
    If c.Name="班级"
        c.AllowEdit=False
    End If
Next
cb3.text=bs
tb5.sort="性别,学生姓名"

text1.Enabled=True
cb4.ComboList=bslist
If tb10.DataTable.DataCols.Contains("男生")=False
    tb10.DataTable.DataCols.Add("男生",Gettype(Integer))
End If
If tb10.DataTable.DataCols.Contains("女生")=False    
    tb10.DataTable.DataCols.Add("女生",Gettype(Integer))
End If
If tb10.DataTable.DataCols.Contains("平均成绩")=False
    tb10.DataTable.DataCols.Add("平均成绩",Gettype(Decimal))
    tb10.DataTable.DataCols("平均成绩").SetFormat("0.00")

End If

For Each r As Row In tb10
    Dim Sum1 As Integer = tb5.Compute("count(学生姓名)","预分班='" & r("班级") & "'")
    Dim Sum2 As Integer = tb5.Compute("count(学生姓名)","性别='男'and  预分班='" & r("班级") & "'")
    Dim Sum3 As Integer = tb5.Compute("count(学生姓名)","性别='女' and 预分班='" & r("班级") & "'")
    Dim avg1 As Integer = tb5.Compute("avg(分班成绩)","预分班='" & r("班级") & "'")
    r("分班人数")=sum1
    r("男生")=sum2
    r("女生")=sum3
    r("平均成绩")=avg1
Next
tb5.AutoSizeCols()
tb10.AutoSizeCols()


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/11 13:59:00 [只看该作者]

我测试没有这种问题。请上传实例测试

 回到顶部
帅哥哟,离线,有人找我吗?
kaiyu
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:786 积分:7974 威望:0 精华:0 注册:2014/4/21 15:16:00
  发帖心情 Post By:2022/8/11 14:16:00 [只看该作者]

   Dim avg1 As Integer = tb5.Compute("avg(分班成绩)","预分班='" & r("班级") & "'") 这里定义成整型

 回到顶部
总数 21 1 2 3 下一页