Foxtable(狐表)用户栏目专家坐堂 → 统计


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

主题:统计

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


加好友 发短信
等级:幼狐 帖子:176 积分:1353 威望:0 精华:0 注册:2014/3/27 14:28:00
统计  发帖心情 Post By:2014/12/1 9:28:00 [只看该作者]

Dim sql As String  = "Select  学期,班级,学生姓名 From {缴费信息} WHERE  学期 = '" & e.form.Controls("上学期").text & "'and 缴费项目 = '学费'"
Dim sq2 As String  = "Select  a.学期,b.班级,a.学生姓名 From {缴费信息} a inner join {缴费信息} b on (a.学生编号 = b.学生编号) where b.学期 = '" & e.form.Controls("上学期").text & "' and a.学期 = '" & e.form.Controls("下学期").text & "' and a.缴费项目 = '学费'and b.缴费项目 = '学费'"
       Dim bd1 As New CrossTableBuilder("统计表1",sql, "数据库")
       Dim dt1 As fxDataSource
       bd1.HGroups.AddDef("班级") '根据班级分组
       bd1.VGroups.AddDef("学期","{0}_学生数")   '添加产品列用于垂直分组
       bd1.Totals.AddDef("学生姓名",AggregateEnum.Count,"学生数")
       bd1.VerticalTotal = True
       dt1 = bd1.BuildDataSource()

       Dim bd2 As New CrossTableBuilder("统计表2",sq2, "数据库")
       Dim dt2 As fxDataSource
       bd2.HGroups.AddDef("班级") '根据班级分组
       bd2.VGroups.AddDef("学期","{0}_老生报名数")   '添加产品列用于垂直分组
       bd2.Totals.AddDef("学生姓名",AggregateEnum.Count,"老生报名数")
       bd2.VerticalTotal = True
       dt2 = bd2.BuildDataSource()
    dt1.Combine("班级",dt2,"班级") '将销售统计数据组合到进货统计数据
    Tables("分析_Table1").DataSource = dt1

With DataTables("分析_Table1").DataCols  '用表达式列计算库存数据
    .Add("老生没报数",Gettype(Integer), "IsNull([?],0) - IsNull([?],0)")  ‘第一列为:{0}_学生数,第二列为:{0}_老生报名数
End With

列名应该怎样引用,请指点,谢谢!

[此贴子已经被作者于2014-12-1 9:32:45编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/12/1 9:30:00 [只看该作者]

前面用 as 命名好列名 然后下面就用这个名字引用

利用 select a.列1 as 支出 

 .Add("老生没报数",Gettype(Integer), "IsNull([支出],0)")

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


加好友 发短信
等级:幼狐 帖子:176 积分:1353 威望:0 精华:0 注册:2014/3/27 14:28:00
  发帖心情 Post By:2014/12/1 9:34:00 [只看该作者]

列名是动态的

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/1 9:36:00 [只看该作者]

 具体例子说明问题,需要额外处理

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


加好友 发短信
等级:幼狐 帖子:176 积分:1353 威望:0 精华:0 注册:2014/3/27 14:28:00
  发帖心情 Post By:2014/12/1 9:38:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20141130173906.png
图片点击可在新窗口打开查看

学期是动态


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/1 9:40:00 [只看该作者]

 直接取文本框的值,拼凑成列名

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/1 9:41:00 [只看该作者]

.Add("老生没报数",Gettype(Integer), "IsNull([" & e.form.Controls("上学期").text  & "],0) - IsNull([" & e.form.Controls("下学期").text  & "],0)")  

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


加好友 发短信
等级:幼狐 帖子:176 积分:1353 威望:0 精华:0 注册:2014/3/27 14:28:00
  发帖心情 Post By:2014/12/1 10:17:00 [只看该作者]


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.zip


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/1 10:22:00 [只看该作者]

Dim sql As String  = "Select  学期,班级,学生姓名 From {缴费信息} WHERE  学期 = '" & e.form.Controls("上学期").text & "'"
Dim sq2 As String  = "Select  a.学期,b.班级,a.学生姓名 From {缴费信息} a inner join {缴费信息} b on (a.学生姓名 = b.学生姓名) where b.学期 = '" & e.form.Controls("上学期").text & "' and a.学期 = '" & e.form.Controls("下学期").text & "'"
Dim bd1 As New CrossTableBuilder("统计表1",sql, "数据库")
Dim dt1 As fxDataSource
bd1.HGroups.AddDef("班级") '根据班级分组
bd1.VGroups.AddDef("学期","{0}_学生数")   '添加产品列用于垂直分组
bd1.Totals.AddDef("学生姓名",AggregateEnum.Count,"学生数")
bd1.VerticalTotal = True
dt1 = bd1.BuildDataSource()

Dim bd2 As New CrossTableBuilder("统计表1",sq2, "数据库")
Dim dt2 As fxDataSource
bd2.HGroups.AddDef("班级") '根据班级分组
bd2.VGroups.AddDef("学期","{0}_老生报名数")   '添加产品列用于垂直分组
bd2.Totals.AddDef("学生姓名",AggregateEnum.Count,"老生报名数")
bd2.VerticalTotal = True
dt2 = bd2.BuildDataSource()
dt1.Combine("班级",dt2,"班级") '将销售统计数据组合到进货统计数据
Tables("分析_Table1").DataSource = dt1
With DataTables("分析_Table1").DataCols  '用表达式列计算库存数据
    .Add("老生没报数",Gettype(Integer), "IsNull([学生姓名_1],0) - IsNull([学生姓名_11],0)")
End With


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


加好友 发短信
等级:幼狐 帖子:176 积分:1353 威望:0 精华:0 注册:2014/3/27 14:28:00
  发帖心情 Post By:2014/12/1 10:28:00 [只看该作者]

谢谢!有点甜老师

 回到顶部