以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]交叉统计后 add占比分析 提示无法找到统计表列名 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=90345) |
-- 作者:qwersha -- 发布时间:2016/9/10 13:27:00 -- [求助]交叉统计后 add占比分析 提示无法找到统计表列名 Dim g As New SQLGroupTableBuilder("统计表1","订单明细表") g.C g.Groups.AddDef("日期",DateGroupEnum.Year,"年度") g.Groups.AddDef("日期", "月份") g.Totals.AddDef("编号", AggregateEnum.Count,"总票数") g.Totals.AddExp("订单","case when 是否订购=\'已订购\' then 1 else 0 end","已订购_票数") g.Totals.AddExp("日期","case when 是否付款=‘已付款’ then 1 else 0 end","已付款_票数") g.VerticalTotal = True g.SubTotal = True g.FromServer = True Tables("订单统计_table1").DataSource = g.BuildDataSource() Dim nms() As String = {"已订购",“已付款”} For Each nm As String In nms DataTables("订单统计_table1").DataCols.Add(nm & "_占比",Gettype(Double),nm & "_票数/总票数") Tables("订单统计_table1").Cols(nm & "_占比").Move(Tables("订单统计_table1").Cols(nm & "_票数").Index + 1) Next 请教一下,上面的代码问题在哪里。。添加列“占比”的时候 nm & "_票数/总票数" , 系统提示说 找不到 已订购_票数,和已付款_票数,无法统计占比。
[此贴子已经被作者于2016/9/10 13:43:16编辑过]
|
-- 作者:qwersha -- 发布时间:2016/9/10 13:28:00 -- 第二行是 数据源名称,复制出来发帖就自动没了~~ |
-- 作者:有点蓝 -- 发布时间:2016/9/10 14:16:00 -- 到命令窗口执行一下代码,看生成的统计表的表结构真正的列名是什么 Dim g As New SQLGroupTableBuilder("统计表1","订单明细表") g.C g.Groups.AddDef("日期",DateGroupEnum.Year,"年度") g.Groups.AddDef("日期", "月份") g.Totals.AddDef("编号", AggregateEnum.Count,"总票数") g.Totals.AddExp("订单","case when 是否订购=\'已订购\' then 1 else 0 end","已订购_票数") g.Totals.AddExp("日期","case when 是否付款=\'已付款\' then 1 else 0 end","已付款_票数") g.VerticalTotal = True g.SubTotal = True g.FromServer = True g.Build |
-- 作者:qwersha -- 发布时间:2016/9/10 14:30:00 -- 老师好,。~~确实显示的就是 已订购_票数。双层结构的。。。我又新建了一个项目。同样的还是这个错误。 |
-- 作者:qwersha -- 发布时间:2016/9/10 14:33:00 -- 我把Tables("订单统计_table1").Cols(nm & "_占比").Move(Tables("订单统计_table1").Cols(nm & "_票数").Index + 1) 这个代码注释了。占比列生成了但是没有数据。我把占比列手工拖到_票数列,2列都可以合并到一起成双层结构的表头。理论上应该名字也是一样的。 |
-- 作者:有点蓝 -- 发布时间:2016/9/10 14:36:00 -- 截图看看统计表的表结构 |
-- 作者:qwersha -- 发布时间:2016/9/10 14:40:00 -- ………………我研究下怎么上次图片的…… |
-- 作者:有点蓝 -- 发布时间:2016/9/10 14:41:00 -- http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=78 一次不行,多传几次
|
-- 作者:qwersha -- 发布时间:2016/9/10 14:54:00 -- …………浏览器上传不了。打开表属性看到了。。。找到问题了。列名不是“已订购_票数”
g.Totals.AddExp("订单","case when 是否订购=\'已订购\' then 1 else 0 end","已订购_票数")
而是统计列的名字。。比如上面的代码:生成的列是 “订单”,列标题 是“已订购_票数”。。
老师,是否有办法解决?
|
-- 作者:qwersha -- 发布时间:2016/9/10 14:57:00 -- 可以了。。。g.Totals.AddExp("订单","case when 是否订购=\'已订购\' then 1 else 0 end","已订购_票数") 这个换成g.Totals.AddExp("已订购_票数","case when 是否订购=\'已订购\' then 1 else 0 end","已订购_票数") 感谢老师提醒看看表结构啊~~ 万分感谢~~
[此贴子已经被作者于2016/9/10 15:03:04编辑过]
|