Foxtable(狐表)用户栏目专家坐堂 → [求助]交叉统计


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

主题:[求助]交叉统计

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
[求助]交叉统计  发帖心情 Post By:2014/6/13 17:31:00 [显示全部帖子]

如果要在窗口中的查询表(SQLquery)中做交叉统计,代码应该如何写,直接生成查询表的代码为:
Dim q As new QueryBuilder
q.C
q.TableName = ("政治面貌")
q.Selectstring ="select * from (Select  工作部门,政治面貌,count(员工编号) 人数 from 员工档案表 group by 工作部门,政治面貌)b order by 人数 desc"
q.Build
Dim g As New CrossTableBuilder("政治面貌", DataTables("部门员工政治面貌"))
g.HGroups.AddDef("工作部门")
g.VGroups.AddDef("政治面貌")
g.Totals.AddDef("人数", "人数")
g.Build()
MainTable = Tables("政治面貌") 
MainTable.Font = New Font("宋体",10,FontStyle.Regular)
Tables("政治面貌").AutoSizeCols()

另外,这个查询表出来以后没有统计列,统计列的代码又改如何写?
[此贴子已经被作者于2014-6-13 17:31:49编辑过]

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/6/13 17:37:00 [显示全部帖子]

定义交叉表时:Dim g As New CrossTableBuilder("政治面貌", DataTables("政治面貌"))
但是窗口中的表是查询表啊,那应该如何定义?

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/6/13 18:05:00 [显示全部帖子]

将这个datasource放到定义的后面的话还是不行,会报 "未将对象引用设置到对象的实例" 的错误

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/6/13 18:06:00 [显示全部帖子]

并且水平和垂直方向的自动汇总在窗口中的查询表中没有体现

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/6/13 18:14:00 [显示全部帖子]

Dim g As New CrossTableBuilder("政治面貌", DataTables("部门员工政治面貌"))
窗口名是:员工统计, 表名为Table1,那这个定义应该如何改啊?

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/6/15 15:45:00 [显示全部帖子]

甜姐,这样写的话在表有数据的情况下是可以的,但是现在表是不加载的,应该如何改呢?

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/6/15 15:59:00 [显示全部帖子]

Dim g As New SQLCrossTableBuilder("最高学历", "员工档案表")
g.C
g.HGroups.AddDef("工作部门")
g.VGroups.AddDef("最高学历")
g.Totals.AddDef("员工编号", "员工编号")
g.VerticalTotal= True '垂直汇总
g.HorizontalTotal = True '水平汇总
g.Build()
Tables("员工统计_Table1").DataSource = g.BuildDataSource
MainTable = Tables("员工统计_Table1")

这样写那地方不对呢?

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/6/15 16:08:00 [显示全部帖子]

会提示这个错误:操作数数据类型 varchar 对于 sum 运算符无效。
因为员工编号那一列是字符型的,所以无法求和?

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/6/15 16:13:00 [显示全部帖子]

终于可以了,太感谢你了甜姐!

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/6/15 16:15:00 [显示全部帖子]

我现在想在窗口中加一个空间来选择工作部门,然后在查询表中搜索出一个部门的统计情况,这样能在代码中实现吗?

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