以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  分组统计问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=79909)

--  作者:文道古月
--  发布时间:2016/1/12 9:52:00
--  分组统计问题

这个统计代码怎么老是提示产品列不在聚合函数中?

 

目的,通过筛选条件,统计产品总数

 

 Dim gb As new SQLGroupTableBuilder("统计","订单") \'分组统计
    gb.C    \'数据源
    gb.Groups.AddDef("产品","客户") \'分组
    gb.Totals.AddExp("总数","SUM(数量)") \'求和
    gb.Filter = filter \' 条件
    gb.Build \'生成
    MainTable = Tables("统计") \'切换主表

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:测试实列wb.table


--  作者:大红袍
--  发布时间:2016/1/12 10:06:00
--  
    Dim gb As new SQLGroupTableBuilder("统计","订单") \'分组统计
    gb.ConnectionName = "test"    \'数据源
    gb.Groups.AddDef("产品") \'分组
    gb.Groups.AddDef("客户") \'分组
    gb.Totals.AddExp("总数","数量") \'求和
    gb.Filter = filter \' 条件
    e.Form.Controls("筛选Table").Table.Datasource = gb.BuildDataSource \'生成

--  作者:文道古月
--  发布时间:2016/1/12 10:45:00
--  

为什么我添加了一个分组列,时间显示就不对了呢?

 

gb.Groups.AddDef("移动时间") \'分组

 


此主题相关图片如下:截图20160112104420.png
按此在新窗口浏览图片

--  作者:大红袍
--  发布时间:2016/1/12 10:49:00
--  

gb.Groups.AddDef("移动时间", DateGroupEnum.None)

 

DateGroupEnum枚举的可选值:

None :     不分组
Year:      按年分组
Quarter:   按季度分组
Month:     按月分组
Week:      按周分组
Day:       按天分组,月中的某一天。
Hour:      按小时分组
Minute:    按分钟分组
Second:    按秒分组


--  作者:文道古月
--  发布时间:2016/1/12 12:13:00
--  

这个统计枚举,只能表达式列引用,不能普通统计列用吗?

 

b.Totals.AddDef("客户",AggregateEnum.Count,"订单数")

b.Totals.AddEXP("客户",AggregateEnum.Count,"订单数")

 

AggregateEnum型枚举的可选值:

Average:平均值
Count: 记录数
Max: 最大值
Min: 最小值
Sum: 累积值

 


--  作者:文道古月
--  发布时间:2016/1/12 12:20:00
--  

 

列,为什么不能这样添加呢?

 

        Dim cols() As String = {"物料1","物料2"}
        gb.Groups.AddDef(cols)


--  作者:大红袍
--  发布时间:2016/1/12 14:44:00
--  

可以啊,你循环就行啊

 

For Each c As String in Cols

    gb.Groups.AddDef(c)

Next


--  作者:文道古月
--  发布时间:2016/1/12 15:26:00
--  

下面这样,为什么不用循环呢?

 


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

--  作者:大红袍
--  发布时间:2016/1/12 15:54:00
--  

每一种,调用的时候都有语法要求,不可能支持所有方式的调用。

 

你要去适应人家的规则。