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


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

主题:分组统计优秀率

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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14925 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/1/13 10:52:00 [只看该作者]

Dim g As New sqlGroupTableBuilder("统计表1", "小生表")
Dim dt1 As Table = Tables("期末_table6")
DataTables("师表").loadfilter = ""
DataTables("师表").load
g.Groups.AddDef("考试名称")
g.Groups.AddDef("学校")
g.Groups.AddDef("年级")
g.Groups.AddDef("类别")
g.Groups.AddDef("学校班级")
g.Totals.AddDef("姓名",AggregateEnum.Count,"参考数")
g.Totals.AddDef("语文",AggregateEnum.Average,"语文_人平")
g.Totals.AddDef("数学",AggregateEnum.Average,"数学_人平")
g.Totals.AddDef("英语",AggregateEnum.Average,"英语_人平")
g.Totals.AddDef("政治",AggregateEnum.Average,"政治_人平")
g.Totals.AddDef("历史",AggregateEnum.Average,"历史_人平")
g.Totals.AddDef("物理",AggregateEnum.Average,"物理_人平")
g.Totals.AddDef("化学",AggregateEnum.Average,"化学_人平")
g.Totals.AddDef("生物",AggregateEnum.Average,"生物_人平")
g.Totals.AddDef("地理",AggregateEnum.Average,"地理_人平")
g.Totals.AddDef("总分",AggregateEnum.Average,"总分_人平")
g.Totals.AddExp("语文_优数", "case when convert(int,年级)<7 and 语文>=85 then 1 when convert(int,年级)>=7 and 语文>=80 then 1 else 0 end", AggregateEnum.Count)
dt1.DataSource = g.BuildDataSource()
dt1.DataTable.DataCols.Add("班级排名",Gettype(Integer))
dt1.DataTable.DataCols.Add("语文_教师",Gettype(String))
dt1.DataTable.DataCols.Add("数学_教师",Gettype(String))
dt1.DataTable.DataCols.Add("英语_教师",Gettype(String))
dt1.DataTable.DataCols.Add("政治_教师",Gettype(String))
dt1.DataTable.DataCols.Add("历史_教师",Gettype(String))
dt1.DataTable.DataCols.Add("物理_教师",Gettype(String))
dt1.DataTable.DataCols.Add("化学_教师",Gettype(String))
dt1.DataTable.DataCols.Add("生物_教师",Gettype(String))
dt1.DataTable.DataCols.Add("地理_教师",Gettype(String))
dt1.DataTable.DataCols.Add("语文_优秀率",Gettype(Double),"语文_优数 / 参考数")

因为年级字段是string,我又改了下,g.FromServer = True也去了,结果还一样,


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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14925 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/1/13 11:21:00 [只看该作者]

小生表是外部数据源

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


加好友 发短信
等级:四尾狐 帖子:781 积分:9870 威望:0 精华:0 注册:2008/9/1 13:47:00
  发帖心情 Post By:2017/1/13 11:39:00 [只看该作者]

用户已被锁定

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14925 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/1/13 11:59:00 [只看该作者]

哦,学习了,谢谢

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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14925 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/1/13 12:16:00 [只看该作者]

DataTables("师表").loadfilter = ""
DataTables("师表").load
Dim g As New sqlGroupTableBuilder("统计表1","小生表")
Dim dt1 As Table = Tables("期末_table6")
g.C
g.Groups.AddDef("考试名称")
g.Groups.AddDef("学校")
g.Groups.AddDef("年级")
g.Groups.AddDef("类别")
g.Groups.AddDef("学校班级")
g.Totals.AddDef("姓名",AggregateEnum.Count,"参考数")
g.Totals.AddDef("语文",AggregateEnum.Average,"语文_人平")
g.Totals.AddDef("数学",AggregateEnum.Average,"数学_人平")
g.Totals.AddDef("英语",AggregateEnum.Average,"英语_人平")
g.Totals.AddDef("政治",AggregateEnum.Average,"政治_人平")
g.Totals.AddDef("历史",AggregateEnum.Average,"历史_人平")
g.Totals.AddDef("物理",AggregateEnum.Average,"物理_人平")
g.Totals.AddDef("化学",AggregateEnum.Average,"化学_人平")
g.Totals.AddDef("生物",AggregateEnum.Average,"生物_人平")
g.Totals.AddDef("地理",AggregateEnum.Average,"地理_人平")
g.Totals.AddDef("总分",AggregateEnum.Average,"总分_人平")
g.Totals.AddExp("语文_优数", "case when convert(int,年级)<7 and 语文>=85 then 1 when convert(int,年级)>=7 and 语文>=80 then 1 else 0 end", AggregateEnum.Count)
dt1.DataSource = g.BuildDataSource()
dt1.DataTable.DataCols.Add("班级排名",Gettype(Integer))
dt1.DataTable.DataCols.Add("语文_教师",Gettype(String))
dt1.DataTable.DataCols.Add("数学_教师",Gettype(String))
dt1.DataTable.DataCols.Add("英语_教师",Gettype(String))
dt1.DataTable.DataCols.Add("政治_教师",Gettype(String))
dt1.DataTable.DataCols.Add("历史_教师",Gettype(String))
dt1.DataTable.DataCols.Add("物理_教师",Gettype(String))
dt1.DataTable.DataCols.Add("化学_教师",Gettype(String))
dt1.DataTable.DataCols.Add("生物_教师",Gettype(String))
dt1.DataTable.DataCols.Add("地理_教师",Gettype(String))
dt1.DataTable.DataCols.Add("语文_优秀率",Gettype(Double),"语文_优数 / 参考数")
Dim ds As DataRow
For Each r As Row In Tables("期末_table6").Rows
    ds = DataTables("师表").Find("考试名称 = '" & r("考试名称") & "'and 学校班级 = '" & r("学校班级") & "'" )    
    If ds IsNot Nothing
        r("语文_教师")= ds("语文教师")
        r("数学_教师")= ds("数学教师")
        r("英语_教师")= ds("英语教师")
        r("政治_教师")= ds("政治教师")
        r("历史_教师")= ds("历史教师")
        r("物理_教师")= ds("物理教师")
        r("化学_教师")= ds("化学教师")
        r("生物_教师")= ds("生物教师")
        r("地理_教师")= ds("地理教师")
    End If
Next

老师还有一个问题,上面代码的语文_优数,与参考数一样呢,语文_优秀率都等于1呢

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | 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")


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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14925 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/1/13 13:27:00 [只看该作者]

DataTables("师表").loadfilter = ""
DataTables("师表").load
Dim g As New sqlGroupTableBuilder("统计表1","小生表")
Dim dt1 As Table = Tables("期末_table6")
g.C
g.Groups.AddDef("考试名称")
g.Groups.AddDef("学校")
g.Groups.AddDef("年级")
g.Groups.AddDef("类别")
g.Groups.AddDef("学校班级")
g.Totals.AddDef("姓名",AggregateEnum.Count,"参考数")
g.Totals.AddDef("语文",AggregateEnum.Average,"语文_人平")
g.Totals.AddDef("数学",AggregateEnum.Average,"数学_人平")
g.Totals.AddDef("英语",AggregateEnum.Average,"英语_人平")
g.Totals.AddDef("政治",AggregateEnum.Average,"政治_人平")
g.Totals.AddDef("历史",AggregateEnum.Average,"历史_人平")
g.Totals.AddDef("物理",AggregateEnum.Average,"物理_人平")
g.Totals.AddDef("化学",AggregateEnum.Average,"化学_人平")
g.Totals.AddDef("生物",AggregateEnum.Average,"生物_人平")
g.Totals.AddDef("地理",AggregateEnum.Average,"地理_人平")
g.Totals.AddDef("总分",AggregateEnum.Average,"总分_人平")
g.Totals.AddExp("语文_优数", "case when convert(int,年级)<7 and 语文>=85 then 1 when convert(int,年级)>=7 and 语文>=80 then 1 else 0 end")
g.Totals.AddExp("数学_优数", "case when convert(int,年级)<7 and 数学>=85 then 1 when convert(int,年级)>=7 and 数学>=80 then 1 else 0 end")
g.Totals.AddExp("英语_优数", "case when convert(int,年级)>=7 and 英语>=80 then 1 else 0 end")
g.Totals.AddExp("政治_优数", "case when convert(int,年级)>=7 and 政治>=80 then 1 else 0 end")
g.Totals.AddExp("历史_优数", "case when convert(int,年级)>=7 and 历史>=80 then 1 else 0 end")
g.Totals.AddExp("生物_优数", "case when convert(int,年级)>=7 and 生物>=80 then 1 else 0 end")
g.Totals.AddExp("地理_优数", "case when convert(int,年级)>=7 and 地理>=80 then 1 else 0 end")
g.Totals.AddExp("物理_优数", "case when convert(int,年级)>=8 and 物理>=80 then 1 else 0 end")
g.Totals.AddExp("化学_优数", "case when convert(int,年级)>=9 and 化学>=80 then 1 else 0 end")
g.Totals.AddExp("语文_及数", "case when 语文>=60 then 1 else 0 end")
g.Totals.AddExp("数学_及数", "case when 数学>=60 then 1 else 0 end")
g.Totals.AddExp("英语_及数", "case when 英语>=60 then 1 else 0 end")
g.Totals.AddExp("政治_及数", "case when 政治>=60 then 1 else 0 end")
g.Totals.AddExp("历史_及数", "case when 历史>=60 then 1 else 0 end")
g.Totals.AddExp("生物_及数", "case when 生物>=60 then 1 else 0 end")
g.Totals.AddExp("地理_及数", "case when 地理>=60 then 1 else 0 end")
g.Totals.AddExp("物理_及数", "case when 物理>=60 then 1 else 0 end")
g.Totals.AddExp("化学_及数", "case when 化学>=60 then 1 else 0 end")
dt1.DataSource = g.BuildDataSource()
dt1.DataTable.DataCols.Add("班级排名",Gettype(Integer))
dt1.DataTable.DataCols.Add("语文_教师",Gettype(String))
dt1.DataTable.DataCols.Add("数学_教师",Gettype(String))
dt1.DataTable.DataCols.Add("英语_教师",Gettype(String))
dt1.DataTable.DataCols.Add("政治_教师",Gettype(String))
dt1.DataTable.DataCols.Add("历史_教师",Gettype(String))
dt1.DataTable.DataCols.Add("物理_教师",Gettype(String))
dt1.DataTable.DataCols.Add("化学_教师",Gettype(String))
dt1.DataTable.DataCols.Add("生物_教师",Gettype(String))
dt1.DataTable.DataCols.Add("地理_教师",Gettype(String))
dt1.DataTable.DataCols.Add("语文_优秀率",Gettype(Double),"语文_优数 / 参考数")
dt1.DataTable.DataCols.Add("数学_优秀率",Gettype(Double),"数学_优数 / 参考数")
dt1.DataTable.DataCols.Add("英语_优秀率",Gettype(Double),"英语_优数 / 参考数")
dt1.DataTable.DataCols.Add("政治_优秀率",Gettype(Double),"政治_优数 / 参考数")
dt1.DataTable.DataCols.Add("历史_优秀率",Gettype(Double),"历史_优数 / 参考数")
dt1.DataTable.DataCols.Add("生物_优秀率",Gettype(Double),"生物_优数 / 参考数")
dt1.DataTable.DataCols.Add("地理_优秀率",Gettype(Double),"地理_优数 / 参考数")
dt1.DataTable.DataCols.Add("物理_优秀率",Gettype(Double),"物理_优数 / 参考数")
dt1.DataTable.DataCols.Add("化学_优秀率",Gettype(Double),"化学_优数 / 参考数")
dt1.DataTable.DataCols.Add("语文_及格率",Gettype(Double),"语文_及数 / 参考数")
dt1.DataTable.DataCols.Add("数学_及格率",Gettype(Double),"数学_及数 / 参考数")
dt1.DataTable.DataCols.Add("英语_及格率",Gettype(Double),"英语_及数 / 参考数")
dt1.DataTable.DataCols.Add("政治_及格率",Gettype(Double),"政治_及数 / 参考数")
dt1.DataTable.DataCols.Add("历史_及格率",Gettype(Double),"历史_及数 / 参考数")
dt1.DataTable.DataCols.Add("生物_及格率",Gettype(Double),"生物_及数 / 参考数")
dt1.DataTable.DataCols.Add("地理_及格率",Gettype(Double),"地理_及数 / 参考数")
dt1.DataTable.DataCols.Add("物理_及格率",Gettype(Double),"物理_及数 / 参考数")
dt1.DataTable.DataCols.Add("化学_及格率",Gettype(Double),"化学_及数 / 参考数")
Dim ds As DataRow
For Each r As Row In Tables("期末_table6").Rows
    ds = DataTables("师表").Find("考试名称 = '" & r("考试名称") & "'and 学校班级 = '" & r("学校班级") & "'" )
    If ds IsNot Nothing
        r("语文_教师")= ds("语文教师")
        r("数学_教师")= ds("数学教师")
        r("英语_教师")= ds("英语教师")
        r("政治_教师")= ds("政治教师")
        r("历史_教师")= ds("历史教师")
        r("物理_教师")= ds("物理教师")
        r("化学_教师")= ds("化学教师")
        r("生物_教师")= ds("生物教师")
        r("地理_教师")= ds("地理教师")
    End If
Next
老师,再请教一个问题,上面代码有会把小学习1-6的年级英语,物理,化学优秀率,和及格率统计为0,而小学没有英语物理化学成绩,这样统计出数据不好看得,但所有学生成绩都在小生表中,我想在统计表中,对不考的科目不统计期及格率和优秀率怎么改

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | 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, 地理_及数 / 参考数)")


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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14925 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2017/1/13 17:43:00 [只看该作者]

老师这也有个问题,是地理_及数他有可能本来就为0,我是想把某年级不考的科目统计不计算,一则效率最高,二则统一不考不算更好看

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