以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助:统计方法  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=69116)

--  作者:fanjq8686
--  发布时间:2015/5/30 18:21:00
--  求助:统计方法

请教:

 不想在表中增加天数的统计字段,如何做啊?


图片点击可在新窗口打开查看此主题相关图片如下:天数统计.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2015/5/30 19:29:49编辑过]

--  作者:y2287958
--  发布时间:2015/5/30 21:51:00
--  
SQLGroupTableBuilder可以随意生成表达式列滴
--  作者:fanjq8686
--  发布时间:2015/5/31 9:20:00
--  
不是生成吧?是原表中有表达式列进行统计的吧?
--  作者:fanjq8686
--  发布时间:2015/5/31 9:27:00
--  

因为我的表现在已经有350列了,太大了,担心一旦有问题不好处理,想用查询或临时表的方式进行统计,或另建一个结构相同的表,用一个列关联,分段保存数据也行,但没有找到办法,有高人指点一下吗?


--  作者:大红袍
--  发布时间:2015/5/31 9:50:00
--  

 就是用SqlGroupBuilder,如

 

Dim b As New SQLGroupTableBuilder("统计表1","项目表")
b.Groups.AddExp("项目")
b.Totals.AddExp("过程1_天数","DateDiff(\'d\', 过程1_开始日期, 过程1_结束日期)")

b.Totals.AddExp("过程2_天数","DateDiff(\'d\', 过程2_开始日期, 过程2_结束日期)")
b.Build
MainTable = Tables("统计表1")

 

 你还可以交叉统计表 http://www.foxtable.com/help/topics/1627.htm

 

 不会做,就请先上传具体例子。

[此贴子已经被作者于2015/5/31 9:51:31编辑过]

--  作者:fanjq8686
--  发布时间:2015/5/31 12:11:00
--  

Dim b As New SQLGroupTableBuilder("统计表1","业务流程表")
b.Groups.AddDef("报告编号")  \'一个报告编号为一个项目
b.Totals.AddExp("检验_天数","DateDiff(d, 检验开始日期, 检验完成日期)")
b.Totals.AddDef("样品数量") \'对数量进行统计
b.Build

Tables("任务统计窗口_Table2").DataSource = b.BuildDataSource()


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

--  作者:fanjq8686
--  发布时间:2015/5/31 12:20:00
--  
确定后:
图片点击可在新窗口打开查看此主题相关图片如下:无标题.jpg
图片点击可在新窗口打开查看

--  作者:fanjq8686
--  发布时间:2015/5/31 13:41:00
--  

这个统计正常:

Dim b1 As New CrossTableBuilder("统计表1",DataTables("业务流程表"))
Dim d1 As fxDataSource
\'b1.Filter = FilterDate1
b1.HGroups.AddDef("报告编号") \'添加列用于水平分组
b1.HGroups.AddDef("产品分类") \'添加列用于水平分组
b1.VGroups.AddDef("受理日期",DateGroupEnum.Month,"受理_{0}月")
b1.Totals.AddDef("受理日期",AggregateEnum.Count,"受理_数量")
\'b1.VerticalTotal= True \'垂直汇总
\'b1.HorizontalTotal = True \'水平汇总
d1 = b1.BuildDataSource()
Tables("任务统计窗口_Table2").DataSource = b1.BuildDataSource()

 

这个就不正常:

Dim b1 As New SQLCrossTableBuilder("统计表1","业务流程表")

Dim d1 As fxDataSource
\'b1.Filter = FilterDate1
b1.HGroups.AddDef("报告编号") \'添加列用于水平分组
b1.HGroups.AddDef("产品分类") \'添加列用于水平分组
b1.VGroups.AddDef("受理日期",DateGroupEnum.Month,"受理_{0}月")
b1.Totals.AddDef("受理日期",AggregateEnum.Count,"受理_数量")
\'b1.VerticalTotal= True \'垂直汇总
\'b1.HorizontalTotal = True \'水平汇总
d1 = b1.BuildDataSource()
Tables("任务统计窗口_Table2").DataSource = b1.BuildDataSource()

 

为什么?


--  作者:大红袍
--  发布时间:2015/5/31 14:22:00
--  

 是不是有表达式列。

 

http://www.foxtable.com/help/topics/1627.htm

 

[此贴子已经被作者于2015/5/31 14:22:08编辑过]

--  作者:大红袍
--  发布时间:2015/5/31 14:23:00
--  
再不会做,就请上传具体的例子。