Foxtable(狐表)用户栏目专家坐堂 → 统计分析的问题


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

主题:统计分析的问题

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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
统计分析的问题  发帖心情 Post By:2016/9/29 14:31:00 [只看该作者]

请教老师,我的统计表因为列比较多,不适合用SQLCrossTableBuilder进行占比分析,用SQLGroupTableBuilder来分析,系统的合计行又不会显示总占比的百分比,想在合计行下增加一行,名称为“失误比例”进行总占比分析,怎样实现

 

下面是部分例子代码,请老师看看

 

Dim b As New SQLGroupTableBuilder("统计表00001","投标评价")
b.C   
b.Groups.AddDef("项目属地")
b.Groups.AddDef("投标结果")

b.Totals.AddExp("前期准备_任务时间_较紧","前期准备_任务时间_较紧*-1","任务时间_较紧",AggregateEnum.Sum)
b.Totals.AddExp("前期准备_任务时间_正常","前期准备_任务时间_正常*-1","任务时间_正常",AggregateEnum.Sum)
b.Totals.AddExp("前期准备_任务时间_充裕","前期准备_任务时间_充裕*-1","任务时间_充裕",AggregateEnum.Sum)
b.Totals.AddExp("前期准备_现场踏勘_一般","前期准备_现场踏勘_一般*-1","现场踏勘_一般",AggregateEnum.Sum)

b.Filter = "投标日期 >= #" & e.Form.Controls("DateTimePicker1").Value & "# And 投标日期 <= #" & e.Form.Controls("DateTimePicker2").Value & "# and 投标结果 Like '%项目未中标%'"
b.VerticalTotal = True


Tables("投标评价_Table1").DataSource = b.BuildDataSource()

 

DataTables("投标评价_Table1").DataCols.Add("失误点数",Gettype(Double), "前期准备_任务时间_较紧 + 前期准备_任务时间_正常")

 

 

[此贴子已经被作者于2016/9/29 14:32:45编辑过]

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


加好友 发短信
等级:超级版主 帖子:109463 积分:556971 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/29 14:49:00 [只看该作者]

上传例子测试

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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2016/9/29 14:54:00 [只看该作者]

窗口是 投标评价  ,请老师看看,哪种分析更适合,主要想实现,垂直合计和水平合计,同时在垂直合计里面显示总占比百分比

 

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


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


加好友 发短信
等级:超级版主 帖子:109463 积分:556971 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/29 16:04:00 [只看该作者]

截图说明一下具体要什么样的效果


Dim b As New SQLGroupTableBuilder("统计表00001","投标评价")
b.C    
b.Groups.AddDef("项目属地")
b.Groups.AddDef("投标结果")

b.Totals.AddExp("前期准备_任务时间_较紧","前期准备_任务时间_较紧*-1","任务时间_较紧",AggregateEnum.Sum) 
b.Totals.AddExp("前期准备_任务时间_正常","前期准备_任务时间_正常*-1","任务时间_正常",AggregateEnum.Sum) 
b.Totals.AddExp("前期准备_任务时间_充裕","前期准备_任务时间_充裕*-1","任务时间_充裕",AggregateEnum.Sum) 
b.Totals.AddExp("前期准备_现场踏勘_一般","前期准备_现场踏勘_一般*-1","现场踏勘_一般",AggregateEnum.Sum)

b.Filter = "投标日期 >= #" & e.Form.Controls("DateTimePicker1").Value & "# And 投标日期 <= #" & e.Form.Controls("DateTimePicker2").Value & "# and 投标结果 Like '%项目未中标%'"
b.VerticalTotal = True

b.GrandProportion = True
Tables("投标评价_Table1").DataSource = b.BuildDataSource()

 

DataTables("投标评价_Table1").DataCols.Add("失误点数",Gettype(Double), "前期准备_任务时间_较紧 + 前期准备_任务时间_正常")


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


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2016/9/29 16:57:00 [只看该作者]

请教老师,如果用SQLCROSS,好像不能实现这样的统计分析,用SQLGROUP也有些属性不能满足,请老师指导指导 ,谢谢!

 

下图,在不增加行的情况下,好像合计不能如此分析数据,如果增加行能处理数据是最好的。

 

 


图片点击可在新窗口打开查看此主题相关图片如下:未标题-1.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2016/9/29 16:58:17编辑过]

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


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

下面代码自己改改放到窗口

Dim b As New SQLGroupTableBuilder("统计表00001","投标评价")
b.C
b.Groups.AddDef("项目属地")
b.Groups.AddDef("投标结果")

b.Totals.AddExp("前期准备_任务时间_较紧","前期准备_任务时间_较紧*-1","任务时间_较紧",AggregateEnum.Sum)
b.Totals.AddExp("前期准备_任务时间_正常","前期准备_任务时间_正常*-1","任务时间_正常",AggregateEnum.Sum)
b.Totals.AddExp("前期准备_任务时间_充裕","前期准备_任务时间_充裕*-1","任务时间_充裕",AggregateEnum.Sum)
b.Totals.AddExp("前期准备_现场踏勘_一般","前期准备_现场踏勘_一般*-1","现场踏勘_一般",AggregateEnum.Sum)

'b.Filter = "投标日期 >= #" & e.Form.Controls("DateTimePicker1").Value & "# And 投标日期 <= #" & e.Form.Controls("DateTimePicker2").Value & "# and 投标结果 Like '%项目未中标%'"
b.VerticalTotal = True
b.GrandProportion = True
b.Build
DataTables("统计表00001").DataCols.Add("失误点数",Gettype(Double), "前期准备_任务时间_较紧 + 前期准备_任务时间_正常")
Dim dr As Row
For i As Integer = 0 To Tables("统计表00001").Rows.Count(True) - 1
    dr = Tables("统计表00001").Rows(i,True)
    dr("前期准备_任务时间_较紧gdr") = Format(dr("前期准备_任务时间_较紧") / dr("失误点数"),"0.00")
    dr("前期准备_任务时间_正常gdr") = Format(dr("前期准备_任务时间_正常") / dr("失误点数"),"0.00")
    dr("前期准备_任务时间_充裕gdr") = Format(dr("前期准备_任务时间_充裕") / dr("失误点数"),"0.00")
Next

 回到顶部