以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  SQL后台统计  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173935)

--  作者:胡噜胡噜毛
--  发布时间:2021/12/23 9:23:00
--  SQL后台统计
Dim b As New SQLGroupTableBuilder("统计表2","视力健康")
b.C
b.Groups.AddDef("班级")
b.Totals.AddExp("班级人数","学生姓名","",AggregateEnum.Count) \'统计人数
Dim nms() As String = {"近视人数"}
For Each nm As String In nms \'利用表达式统计及格人数和优秀人数 
 b.Totals.Addexp(nm & "近视人数", "case when (裸眼视力左眼  < 4.8 And 裸眼视力右眼 < 4.8 , 1, 0)")
   Next 
b.VerticalTotal = True
b.Build()
For Each nm As String In nms \'对生成的统计表增加表达式列,计算及格率和优秀率
  DataTables("统计表2").DataCols.Add(nm & "近视率",Gettype(Double), nm & "近视人数/班级人数" )
   Tables("统计表2").Cols(nm & "近视率").Move(Tables("统计表2").Cols(nm & "近视人数").Index + 1)   
\'Next
MainTable = Tables("统计表2")


想要按班级统计学生人数和近视人数,并计算出近视率,一直不能成功,应该怎么修改呢?

--  作者:胡噜胡噜毛
--  发布时间:2021/12/23 9:26:00
--  

[此贴子已经被作者于2021/12/23 9:26:56编辑过]

--  作者:有点蓝
--  发布时间:2021/12/23 9:28:00
--  
Dim b As New SQLGroupTableBuilder("统计表2","视力健康")
b.Connecti
b.Groups.AddDef("班级")
b.Totals.AddDef("学生姓名",AggregateEnum.Count,"班级人数") \'统计人数
b.Totals.Addexp("近视人数", "case when (裸眼视力左眼  < 4.8 And 裸眼视力右眼 < 4.8 , 1, 0)")
b.VerticalTotal = True
b.Build()
DataTables("统计表2").DataCols.Add("近视率",Gettype(Double), "近视人数/班级人数" )
MainTable = Tables("统计表2")

--  作者:胡噜胡噜毛
--  发布时间:2021/12/23 9:32:00
--  
您好b.c

现在一直显示语法错误,麻烦您看看哪里有问题

[此贴子已经被作者于2021/12/23 9:33:27编辑过]

--  作者:有点蓝
--  发布时间:2021/12/23 9:34:00
--  
数据库是access还是SqlServer?

SqlServer
b.Totals.Addexp("近视人数", "case when 裸眼视力左眼  < 4.8 And 裸眼视力右眼 < 4.8 then 1 else 0 end ")

access
b.Totals.Addexp("近视人数", "iif (裸眼视力左眼  < 4.8 And 裸眼视力右眼 < 4.8 , 1, 0)")

--  作者:胡噜胡噜毛
--  发布时间:2021/12/23 9:34:00
--  
那个指定了,这个里面显示不出来图片点击可在新窗口打开查看
--  作者:胡噜胡噜毛
--  发布时间:2021/12/23 9:45:00
--  
您好,近视人数统计出来了
For Each nm As String In nms \'对生成的统计表增加表达式列,计算及格率和优秀率
  DataTables("统计表2").DataCols.Add(nm & "近视率",Gettype(Double), nm & "近视人数/班级人数" )
   Tables("统计表2").Cols(nm & "近视率").Move(Tables("统计表2").Cols(nm & "近视人数").Index + 1)   
Next
在计算近视率的时候,为什么会显示没有近视人数这一列呢?

--  作者:有点蓝
--  发布时间:2021/12/23 9:47:00
--  
看3楼
--  作者:胡噜胡噜毛
--  发布时间:2021/12/23 9:52:00
--  
谢谢 谢谢 非常感谢,解决啦图片点击可在新窗口打开查看