Foxtable(狐表)用户栏目专家坐堂 → 分组统计优秀率


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

主题:分组统计优秀率

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/13 9:18:00 [显示全部帖子]

 

[此贴子已经被作者于2017/1/13 9:18:19编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/13 9:28:00 [显示全部帖子]

增加列

 

dt1.DataTable.DataCols.Add("语文_优秀率",Gettype(String))

 

赋值

 

Dim yx As Integer = DataTables("小生表").Compute("count(语文)", "考试名称 = '" & r("考试名称") & "' and 年级 = '" & r("年级") & "' and 类别 = '" & r("类别") & "' and 年级班级 = '" & r("年级班级") & "' and 语文 >= " & iif(r("年级")>7,80,85))

Dim zrs As Integer = DataTables("小生表").Compute("count(语文)", "考试名称 = '" & r("考试名称") & "' and 年级 = '" & r("年级") & "' and 类别 = '" & r("类别") & "' and 年级班级 = '" & r("年级班级") & "'")

r("语文_优秀率") =  yx / zrs

[此贴子已经被作者于2017/1/13 9:28:57编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/13 10:19:00 [显示全部帖子]

那你就用sqlGroupTableBuilder来统计。然后用表达式计算

 

g.Totals.AddExp("语文_优秀", "case when 年级<7 and 语文>=85 then 1 when 年级>=7 and 语文>=80 then 1 else 0 end")

g.Totals.AddDef("语文_总人数", AggregateEnum.Count)

 

生成表后加入表达式列

 

dt1.DataTable.DataCols.Add("语文_优秀率",Gettype(double),"语文_优秀 / 语文_总人数")

 

http://www.foxtable.com/webhelp/scr/1626.htm

 

 

[此贴子已经被作者于2017/1/13 12:33:42编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/13 10:45:00 [显示全部帖子]

这句去掉 g.FromServer = True


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/13 11:41:00 [显示全部帖子]

 

SQLGroupTableBuilder包括以下属性:

 

ConnectionName:  指定数据源名称,如果省略,表示使用内部数据表。

 

[此贴子已经被作者于2017/1/13 11:43:12编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/13 12:33:00 [显示全部帖子]

写错了,改成

 

g.Totals.AddExp("语文_优数", "case when convert(int,年级)<7 and 语文>=85 then 1 when convert(int,年级)>=7 and 语文>=80 then 1 else 0 end")


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/13 14:22:00 [显示全部帖子]

 那你现在是想把0改成空白?你可以写成

 

dt1.DataTable.DataCols.Add("地理_及格率",Gettype(Double),"iif(地理_及数=0, nothing, 地理_及数 / 参考数)")


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/1/13 17:52:00 [显示全部帖子]

以下是引用刘林在2017/1/13 17:43:00的发言:
老师这也有个问题,是地理_及数他有可能本来就为0,我是想把某年级不考的科目统计不计算,一则效率最高,二则统一不考不算更好看

 

那,可以判断年级

 

dt1.DataTable.DataCols.Add("地理_及格率",Gettype(Double),"iif(年级 in ('1','2','3','4','5','6'), nothing, 地理_及数 / 参考数)")


 回到顶部