以文本方式查看主题

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

--  作者:gaoyong30000
--  发布时间:2014/3/17 21:10:00
--  分组统计的问题

之前一直在做分组统计表

但是目前出现一个统计问题

我需求是这样的,我想知道竞争对手在所有报纸媒体投放广告的次数。
我表中每行的数据是按产品来的,可能一个报纸版面有多个产品 那就产生很多行,这种情况就是出版日期,刊物名称,版面,页码均相同,但是产品名称不同,出在同一版面的多个产品 我只算其投放了一次广告,表中内置的分组统计貌似没法解决这个问题

我上示例,如果有不懂的可以问我!

 

 

最终我想实现

竞争对手A        投放了23次广告

竞争对手B        投放了47次广告

........

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


--  作者:gaoyong30000
--  发布时间:2014/3/17 22:38:00
--  
请教各位了!!!!!!!!!
--  作者:gaoyong30000
--  发布时间:2014/3/17 23:21:00
--  

这个应该不难实现 只是我好久没接触了  忘了~~~~~~~~~


--  作者:Bin
--  发布时间:2014/3/18 8:40:00
--  
不是很理解你的意思

是说 简单来说.出版日期,刊物名称,版面,页码均相同 的当作一次来统计吗?

--  作者:lsy
--  发布时间:2014/3/18 9:17:00
--  

Dim t As Table = CurrentTable
Dim vals As List(Of String) = t.DataTable.GetValues("产品","产品 Is Not Null")
For Each val As String In vals
    Dim arys As List(Of String()) = t.DataTable.GetValues("产品|客户|雇员","产品 = \'" & val & "\'")
    Output.Show(Val & "  " & arys.Count)
Next

 

订单表里正常,但在楼主的表中有个错误,不知什么原因。


--  作者:gaoyong30000
--  发布时间:2014/3/18 10:52:00
--  
以下是引用Bin在2014-3-18 8:40:00的发言:
不是很理解你的意思

是说 简单来说.出版日期,刊物名称,版面,页码均相同 的当作一次来统计吗?

是的~~~~~~~~~   只要有一个不同  就重复统计
--  作者:gaoyong30000
--  发布时间:2014/3/18 10:54:00
--  
请问如何解决啊~~~~~~~~~~
--  作者:Bin
--  发布时间:2014/3/18 10:56:00
--  
Dim g As New GroupTableBuilder("统计表1", DataTables("保健品竞品明细"))
g.Groups.AddDef("出版日期", DateGroupEnum.None)
g.Groups.AddDef("刊物名称")
g.Groups.AddDef("版面")
g.Groups.AddDef("页码")
g.Totals.AddDef("产品名称", AggregateEnum.Count)
g.Build()
MainTable = Tables("统计表1")

看看是否能满足你需求.

--  作者:gaoyong30000
--  发布时间:2014/3/18 15:52:00
--  

 用了您的代码 我统计了2次 才得到了最终结果 有没办法统计一次 

第一次统计代码为
Dim g As New GroupTableBuilder("统计表1", DataTables("保健品竞品明细"))
g.Groups.AddDef("品牌名称")
g.Groups.AddDef("出版日期", DateGroupEnum.None)
g.Groups.AddDef("刊物名称")
g.Groups.AddDef("版面")
g.Groups.AddDef("页码")
g.Totals.AddDef("产品名称", AggregateEnum.Count)
g.Build()
MainTable = Tables("统计表1")



第二次根据统计表1
Dim g As New GroupTableBuilder("统计表2", DataTables("统计表1"))
g.Groups.AddDef("品牌名称")
g.Totals.AddDef("页码", AggregateEnum.Count)
g.Build()
MainTable = Tables("统计表2")

最终结果为,比如第一名对手草姬  打了38版的广告

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

[此贴子已经被作者于2014-3-18 15:52:36编辑过]

--  作者:Bin
--  发布时间:2014/3/18 15:56:00
--  
那就统计2次吧