以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  有个合并统计问题请教各位老师  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=40783)

--  作者:roony99
--  发布时间:2013/9/29 11:55:00
--  有个合并统计问题请教各位老师


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

图片点击可在新窗口打开查看此主题相关图片如下:2222.bmp
图片点击可在新窗口打开查看
我想把进行交叉统计后的数据再合并统计,如图每日统计表把"黄村","黄渡"单独统计,而其他站点全部合并应该怎么做.

或者是进行交叉统计前就进行分组,也是把"黄村","黄渡"单独统计,而其他站点全部合并.请各位老师赐教.

 


--  作者:狐狸爸爸
--  发布时间:2013/9/29 11:59:00
--  

再增加个表达式列,将其余各列的值汇总到这个表达式列即可。

 

 

[此贴子已经被作者于2013-9-29 11:59:33编辑过]

--  作者:Bin
--  发布时间:2013/9/29 12:01:00
--  
不是很懂你意思,而且这种问题最好有实物例子.
--  作者:roony99
--  发布时间:2013/9/29 12:09:00
--  
老大,我这个是数据统计菜单生成的临时表,不能增加表达式列啊
--  作者:狐狸爸爸
--  发布时间:2013/9/29 12:14:00
--  

任何表,包括临时表,都可以用代码添加表达式列的:

 

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

 

或者你在原始数据表增加一个表达式列,用于合计那几列的数据,统计的时候,就单单统计黄村"、"黄渡"以及这个表达式列即可。

 

 


--  作者:roony99
--  发布时间:2013/10/3 12:40:00
--  

各位老师在指点一下,我是想把tables("历史运单")按日期筛选后再统计,单以下代码计算的是全部记录,并不是筛选后的结果,请教各位老师代码应该怎么改?

 

Tables("统计").StopRedraw
Dim dt As DataTable = DataTables("历史运单")
Dim aList As List(of String) = DataTables("历史运单").GetUniqueValues("","装车线路")
If aList IsNot Nothing Then
    For Each s As String In aList
        Dim dr As DataRow = DataTables("统计").AddNew
        dr("装车线路")=s
        dr("黄村1")=dt.Compute("count(到站)","装车线路=\'" & s & "\' and 到站 = \'黄村(京)\'")
        dr("黄渡1")=dt.Compute("count(到站)","装车线路=\'" & s & "\' and 到站 = \'黄渡(上)\'")
        dr("其他站点1")=dt.Compute("count(到站)","装车线路=\'" & s & "\' and 到站 <> \'黄渡(上)\'and 到站 <> \'黄村(京)\'")

        dr("黄村2")=dt.Compute("sum(装车数量)","装车线路=\'" & s & "\' and 到站 = \'黄村(京)\'")
        dr("黄渡2")=dt.Compute("sum(装车数量)","装车线路=\'" & s & "\' and 到站 = \'黄渡(上)\'")
        dr("其他站点2")=dt.Compute("sum(装车数量)","装车线路=\'" & s & "\' and 到站 <> \'黄渡(上)\'and 到站 <> \'黄村(京)\'")
        \'dr("日期") = dt("发货日期")
        Next
    End If
    Tables("统计").ResumeRedraw

 

 


--  作者:roony99
--  发布时间:2013/10/3 12:41:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.rar


--  作者:有点甜
--  发布时间:2013/10/3 12:55:00
--  
 参考下面的代码

Dim s_date As Date = new Date(2013, 9, 24)
Dim e_date As Date = new Date(2013, 9, 27)
Tables("统计").StopRedraw
Dim filter As String = " 发货日期 >= #" & s_date & "# and 发货日期 <= #" & e_date & "#"
Dim dt As DataTable = DataTables("历史运单")
Dim aList As List(of String) = DataTables("历史运单").GetUniqueValues(filter,"装车线路")
If aList IsNot Nothing Then
    For Each s As String In aList
        Dim dr As DataRow = DataTables("统计").AddNew
        dr("装车线路")=s
        dr("黄村1")=dt.Compute("count(到站)","装车线路=\'" & s & "\' and 到站 = \'黄村(京)\' and " & filter)
        dr("黄渡1")=dt.Compute("count(到站)","装车线路=\'" & s & "\' and 到站 = \'黄渡(上)\' and " & filter)
        dr("其他站点1")=dt.Compute("count(到站)","装车线路=\'" & s & "\' and 到站 <> \'黄渡(上)\'and 到站 <> \'黄村(京)\' and " & filter)
        dr("黄村2")=dt.Compute("sum(装车数量)","装车线路=\'" & s & "\' and 到站 = \'黄村(京)\' and " & filter)
        dr("黄渡2")=dt.Compute("sum(装车数量)","装车线路=\'" & s & "\' and 到站 = \'黄渡(上)\' and " & filter)
        dr("其他站点2")=dt.Compute("sum(装车数量)","装车线路=\'" & s & "\' and 到站 <> \'黄渡(上)\'and 到站 <> \'黄村(京)\' and " & filter)
    Next
End If
Tables("统计").ResumeRedraw

--  作者:roony99
--  发布时间:2013/10/3 13:14:00
--  
有点甜老师,根据你的代码测试没响应啊,麻烦再帮忙看看代码有没问题.
--  作者:有点甜
--  发布时间:2013/10/3 13:29:00
--  
 呃……日期写在第一第二行,你要筛选那个范围的日期,就写哪个范围的。自己变通来用。
[此贴子已经被作者于2013-10-3 13:28:49编辑过]