Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
Dim sql As String = "Select 报表年月,日期,单位,加工费,投工 FROM {日报源表} WHERE Year(日期) = 2010"
Dim b As New CrossTableBuilder("统计表1",sql)
b.HGroups.AddDef("单位")
b.VGroups.AddDef("报表年月")
b.Totals.AddDef("加工费")
b.Totals.AddDef("投工",AggregateEnum.Average,"月均人数")
b.HorizontalTotal = True
b.VerticalTotal = True
b.Build()
MainTable = Tables("统计表1")
上述代码在命令窗口执行后,可以生成一统计表,需要在SELECT语句中添加按日期分组字段,如何添加,请各位老师指教。谢谢!
Dim sql As String = "Select 报表年月,日期,单位,加工费,投工 FROM {日报源表} WHERE Year(日期) = 2010"
Dim b As New CrossTableBuilder("统计表1",sql)
b.HGroups.AddDef("单位")
b.HGroups.AddDef("日期", "月")
b.VGroups.AddDef("报表年月")
b.Totals.AddDef("加工费")
b.Totals.AddDef("投工",AggregateEnum.Average,"月均人数")
b.HorizontalTotal = True
b.VerticalTotal = True
b.Build()
MainTable = Tables("统计表1")
可以看看CrossTableBuilder的说明:
http://help.foxtable.com/topics/0678.htm
谢谢狐爸的回帖,但是我不是要增加月的列,而是因为源表中每个单位每天有几个项目的投工,我是要通过在SELECT语句中添加按日期分组字段,来获取每个单位每天的投工数,在月份汇总时才能得到正确的月平均人数。
附上文件:
下载信息 [文件大小: 下载次数: ] | |
![]() |
Dim sql As String = "Select 报表年月,日期,单位,加工费,投工 FROM {日报源表} WHERE Year(日期) = 2010"
Dim b As New CrossTableBuilder("统计表1",sql)
b.HGroups.AddDef("单位")
b.HGroups.AddDef("日期", DateGroupEnum.None)
b.VGroups.AddDef("报表年月")
b.Totals.AddDef("加工费")
b.Totals.AddDef("投工",AggregateEnum.Average,"月均人数")
b.HorizontalTotal = True
b.VerticalTotal = True
b.Build()
MainTable = Tables("统计表1")
group语句必须配合sum之类的聚合函数才能用的。
不知道你为啥要这么做?
统计直接用CrossTableBuilder或GroupTableBuilder,没有什么统计数据得不到的。
做个表,输入一点测试数据,然后传上来,说一下你需要的统计结果是什么。
案例在三楼。
在共享窗口当月汇总生成的汇总表,其中月均人数需要先从当月日汇总的表里的全员人数列提取数据汇总而成,因为每个单位每天有几个项目的投工,需要每个单位每天的投工数,所以先要汇总每天的投工人数,然后用Average来得到月平均人数。
上述代码的目的:想通过
Dim sql As String = "Select 报表年月,日期,单位,加工费,投工 FROM {日报源表} WHERE Year(日期) = 2010"
Dim b As New CrossTableBuilder("统计表1",sql)
这两句代码能够生成类似按日汇总表(不可见),然后根据此表来生成类似月汇总表的年汇总表(可见)。这样的思路可行吗?还请狐爸老师指教。谢谢!!
月汇总:
年汇总: