Foxtable(狐表)用户栏目专家坐堂 → 关于交叉统计的问题


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

主题:关于交叉统计的问题

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


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/30 16:41:00 [只看该作者]

上传实例测试一下

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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2019/8/30 16:42:00 [只看该作者]

 上面可以生成的表如果改成:

Dim sql As String
sql = "Select 客户名称,业务员,{销售订单主表}.送货日期,Round({销售订单明细}.产品数量*{销售订单明细}.产品销售价,2) as 金额 ..."
Dim b As New CrossTableBuilder("客户分析",sql, sjy)
b.HGroups.AddDef("客户名称") '添加客户列用于水平分组
b.HGroups.AddDef("业务员") '添加客户列用于水平分组
b.HGroups.AddDef("送货日期",DateGroupEnum.year,"年份")
b.VGroups.AddDef("送货日期",DateGroupEnum.month,"{0}月")
b.Totals.AddDef("客户名称",AggregateEnum.count,"金额")
b.Decimals = 2
b.HorizontalTotal = True
b.Build '生成统计表


也会和上面那个一样,不会报错,但会有一行 空白行. 所以,请确认是不是 bug ? 不能统计 行数,只能统计 合计数.

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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2019/8/30 16:51:00 [只看该作者]

 老师

 实例中因为有公司的很多数据,不可能发上来测的.现在我已经基本弄清楚了.

b.Totals.AddDef("客户名称",AggregateEnum.count,"金额")  就不能生成

b.Totals.AddDef("金额")  这样就可以.没有问题.

其它的都没有问题.

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


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/30 17:08:00 [只看该作者]

新建一个项目,导入这2个表结构,随便录入一下数据,发过来测试

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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2019/8/30 17:27:00 [只看该作者]

 老师

请看附件,我做成内部表后,就都不可以生成了,但也不报错.麻烦你给看一下是什么问题.多谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip



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


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/30 18:01:00 [只看该作者]

内部表不能使用sql,改为外部表后,这里改改

Dim b As New CrossTableBuilder("客户分析",sql, sjy)
b.HGroups.AddDef("客户名称") '添加客户列用于水平分组
b.HGroups.AddDef("业务员") '添加客户列用于水平分组
b.HGroups.AddDef("送货日期",DateGroupEnum.year,"年份")
b.VGroups.AddDef("送货日期",DateGroupEnum.month,"{0}月")
b.Totals.AddDef("金额",AggregateEnum.count,"金额") '随便哪一个列都可以计数的,改为使用送货日期列也可以,但是不能使用分组列

还有15楼的例子列名错了,是送货时间,不是送货日期

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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2019/8/30 21:47:00 [只看该作者]

蓝老师

请看附件项目. 我已经改好了.但还有些问题.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip

现在如果 按生成数据2 会有如下数据 :

请看图片:


图片点击可在新窗口打开查看此主题相关图片如下:czml{w{ugtz~x0oo~z98m.png
图片点击可在新窗口打开查看




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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2019/8/30 21:48:00 [只看该作者]

 如何改代码才能实现

水平分组列是客户名称, 然后统计的是该客户的订单行数. 多谢!

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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2019/8/30 21:50:00 [只看该作者]

 老师,我知道

用其它的列.多谢!

 回到顶部
总数 19 上一页 1 2