Foxtable(狐表)用户栏目专家坐堂 → 分组统计提示错误:已有相同的键


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

主题:分组统计提示错误:已有相同的键

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
分组统计提示错误:已有相同的键  发帖心情 Post By:2016/12/8 18:10:00 [只看该作者]

如下分组统计提示错误:已有相同的键。不知道是错在哪里

 

    Dim b1 As New SQLGroupTableBuilder("统计表1","员工周分析明细")
    Dim dt1 As fxDataSource
    b1.C
    b1.Groups.AddDef("门店") '根据产品分组
    b1.Groups.AddDef("营业员") '根据产品分组
    b1.Totals.AddDef("销售金额","本周销售金额_实际完成") '对数量进行统计
    b1.Filter = filter
    dt1= b1.BuildDataSource()

 

    Dim b5 As New SQLGroupTableBuilder("统计表5","员工周分析明细")
    Dim dt5 As fxDataSource
    b5.C
    b5.Groups.AddDef("门店") '根据产品分组
    b5.Groups.AddDef("营业员") '根据产品分组
    b5.Groups.AddDef("单号") '根据产品分组
    b5.Totals.AddDef("销售金额",AggregateEnum.max,"周大单金额") '对数量进行统计
    b5.Filter = filter
    dt5= b5.BuildDataSource()

Dim nms As String() =  {"门店","营业员"}
dt1.combine(nms,dt5,nms)

 

Tables(e.Form.Name & "_table3").DataSource = dt1

 

 

[此贴子已经被作者于2016/12/8 18:52:51编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2016/12/8 19:38:00 [只看该作者]

刚看了其他帖子,说 combine需要包含所有的分组

我如下做是可行,那是否还有别的更好的方案呢?

先在视图按单号分组统计每一单的金额:

SELEC T
DateName(year,dbo.[销售明细].[销售日期]) AS [年份],
case when DateName(weekday,dbo.[销售明细].[销售日期]) = '星期日' then cast(datename(week,dbo.[销售明细].[销售日期])as int)-1 
else
cast(datename(week,dbo.[销售明细].[销售日期])as int)
end AS [周次],

dbo.[销售明细].[门店],
dbo.[销售明细].[营业员],
dbo.[销售明细].[单号],
sum(dbo.[销售明细].[销售金额]) as 销售金额

FROM
dbo.[销售明细]
group BY
dbo.[销售明细].[门店],
dbo.[销售明细].[营业员],
dbo.[销售明细].[单号],
dbo.[销售明细].[销售日期]

 

再在FT里做周大单金额 的统计:

    Dim b5 As New SQLGroupTableBuilder("统计表5","员工周销售单号")
    Dim dt5 As fxDataSource
    b5.C
    b5.Groups.AddDef("门店") '根据产品分组
    b5.Groups.AddDef("营业员") '根据产品分组
    b5.Totals.AddDef("销售金额",AggregateEnum.Max,"周大单金额") '根据产品分组
    b5.Filter = filter
    dt5= b5.BuildDataSource()


 回到顶部