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


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

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

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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
关于交叉统计的问题  发帖心情 Post By:2019/8/30 15:30:00 [只看该作者]

 老师,
关于交叉统计的代码如下:

Dim sql As String
sql = "S el e ct (sel ec t 客户名称 from {客户汇总} where _Identify = {客户跟进表}.CID) as 客户名称,'bb' as 业务员,时间 as 送货日期 from {客户跟进表} where 录入人 In ('陈达锋') And 报告内容 Is not null And 回复 = 0"
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.HorizontalTotal = True
b.Build '生成统计表

这个代码中的sql 语句是没有问题的,生成出来的数据是对的.可是为什么不能生成交叉表.也不报错.但就是没数据.真奇怪.

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


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

这个sql确定没有问题?可以正常执行?SQL语句没有返回统计表用到的列

其次说个题外话,建议不要使用_Identify 这种自增数据进行业务关联,自增数据是不可控的,而且并不是固定的,数据库只能保证自增列数据都是唯一的,无法保证值是不变的。


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


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

 有点蓝老师
    sql 语句测试过肯定没有问题.在执行SQL中能生成表.而且数据都是对的. 系统是以前的历史问题.现在已经在慢慢更改中了.

关键的原因是为什么不能生成交叉表?

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


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

完整sql发上来看看

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


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

 sql = "S el e ct (sel ec t 客户名称 from {客户汇总} where _Identify = {客户跟进表}.CID) as 客户名称,'bb' as 业务员,时间 as 送货日期 from {客户跟进表} where 录入人 In ('陈达锋') And 报告内容 Is not null And 回复 = 0"

这个就是完整的sql.出来的表如图:


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


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


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

改为这个SQL试试

Select 客户名称,'bb' as 业务员,时间 as 送货日期 from {客户跟进表} inner join {客户汇总} on {客户汇总}.[_Identify] = {客户跟进表}.CID where 录入人 In ('陈达锋') And 报告内容 Is not null And 回复 = 0

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


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

 试了. 还是一样.

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


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

 不会报错. 就一个空白行. 无内容

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


加好友 发短信
等级:六尾狐 帖子:1467 积分:11418 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2019/8/30 16:30: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("金额")
b.Decimals = 2
b.HorizontalTotal = True
b.Build '生成统计表

另外一个数据源,sql 语句生成的表也没有问题,都正常. 但是这个交叉统计生成又没有问题.可以生成.怎么会这样 ?



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


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

 两个表的列都是一样的. 一个表多了一列金额.统计汇总没有问题. 但统计单数就会出现问题

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