以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  totals.addexp语句请教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=143681)

--  作者:刘林
--  发布时间:2019/12/1 20:34:00
--  totals.addexp语句请教
Dim TB2 As Table = Tables("幼儿园信息_table2")
Dim g As New sqlGroupTableBuilder("yeyxm","幼儿园基本情况表")
g.Connectio
If js.Contains("区业务主管")= False
    g.Filter="所属中心校=\'" & sszxx & "\'"
End If
g.Groups.AddDef("所属中心校","所属中心校")

\'g.Totals.AddExp("公办_所数","case when 性质 =\'公办\' then 1 else 0 end")
\'g.Totals.AddExp("公办_班数","case when 性质 =\'公办\' then 班数 else 0 end")
\'\'
tb2.DataSource = g.BuildDataSource()
tb2.DataTable.DataCols.Add("公办_所数",Gettype(Integer))
tb2.DataTable.DataCols.Add("公办_班数",Gettype(Integer))
tb2.DataTable.DataCols.Add("公办_人数",Gettype(Integer))

tb2.DataTable.DataCols.Add("民办_所数",Gettype(Integer))
tb2.DataTable.DataCols.Add("民办_班数",Gettype(Integer))
tb2.DataTable.DataCols.Add("民办_人数",Gettype(Integer))

tb2.DataTable.DataCols.Add("公民办合计_所数",Gettype(Integer))
tb2.DataTable.DataCols.Add("公民办合计_班数",Gettype(Integer))
tb2.DataTable.DataCols.Add("公民办合计_人数",Gettype(Integer))


For Each r As Row In tb2.Rows
    r("公办_所数")=DataTables("幼儿园基本情况表").SQLCompute("Count(性质)", "性质=\'公办\' and 所属中心校=\'" & r("所属中心校") & "\'")
    r("公办_班数")=DataTables("幼儿园基本情况表").SQLCompute("sum(班数)", "性质=\'公办\' and 所属中心校=\'" & r("所属中心校") & "\'")
    r("公办_人数")=DataTables("幼儿园基本情况表").SQLCompute("sum(幼儿人数)", "性质=\'公办\' and 所属中心校=\'" & r("所属中心校") & "\'")
    r("民办_所数")=DataTables("幼儿园基本情况表").SQLCompute("Count(性质)", "性质=\'民办\' and 所属中心校=\'" & r("所属中心校") & "\'")
    r("民办_班数")=DataTables("幼儿园基本情况表").SQLCompute("sum(班数)", "性质=\'民办\' and 所属中心校=\'" & r("所属中心校") & "\'")
    r("民办_人数")=DataTables("幼儿园基本情况表").SQLCompute("sum(幼儿人数)", "性质=\'民办\' and 所属中心校=\'" & r("所属中心校") & "\'")
    r("公民办合计_所数")=DataTables("幼儿园基本情况表").SQLCompute("Count(性质)", "所属中心校=\'" & r("所属中心校") & "\'")
    r("公民办合计_班数")=DataTables("幼儿园基本情况表").SQLCompute("sum(班数)", "所属中心校=\'" & r("所属中心校") & "\'")
    r("公民办合计_人数")=DataTables("幼儿园基本情况表").SQLCompute("sum(幼儿人数)", "所属中心校=\'" & r("所属中心校") & "\'")
Next
tb2.GrandTotal = True \'显示合计模式
tb2.AutoSizeCols()


老师:
g.Totals.AddExp("公办_所数","case when 性质 =\'公办\' then 1 else 0 end")可以计数

如何用这种方式来求班数,人数呢?
感觉用上面方式虽可以统计,但效率不高
[此贴子已经被作者于2019/12/1 20:37:27编辑过]

--  作者:有点蓝
--  发布时间:2019/12/1 21:02:00
--  
g.Totals.AddExp("公办_班数","case when 性质 =\'公办\' then 班数 else 0 end")
g.Totals.AddExp("公办_人数","case when 性质 =\'公办\' then 幼儿人数 else 0 end")