Foxtable(狐表)用户栏目专家坐堂 → 统计问题


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

主题:统计问题

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


加好友 发短信
等级:五尾狐 帖子:1011 积分:6507 威望:0 精华:0 注册:2015/2/25 23:14:00
  发帖心情 Post By:2017/3/10 18:31:00 [只看该作者]

结果不是预期的。

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


加好友 发短信
等级:超级版主 帖子:106688 积分:542629 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/10 20:11:00 [只看该作者]

上传例子测试,说明最终需要什么效果

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


加好友 发短信
等级:五尾狐 帖子:1011 积分:6507 威望:0 精华:0 注册:2015/2/25 23:14:00
  发帖心情 Post By:2017/3/10 21:43:00 [只看该作者]

老师好,表在附件,里面包含两个表,表dayresult是我的目标。请查收。谢谢!(在第3页附录有该表)

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


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


加好友 发短信
等级:超级版主 帖子:106688 积分:542629 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/10 22:14:00 [只看该作者]

11
[此贴子已经被作者于2017/3/10 22:20:47编辑过]

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


加好友 发短信
等级:超级版主 帖子:106688 积分:542629 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/10 22:29:00 [只看该作者]

Dim dt As DataTable = DataTables("daytj")
Dim Total As Double  = dt.Compute("sum(Hours)")
Dim Customers As List(Of String)
Customers = dt.GetValues("Category")
Dim dt2 As DataTable = DataTables("Dayresult")
Dim dr As DataRow
For Each Customer As String In Customers
    Dim c As Double = dt.Compute("Sum(Hours)", "[Category] = '" & Customer & "'")
    dr = dt2.AddNew()
    dr("Category") = Customer
    dr("Hours") = c
    dr("%Percent") = iif(c > 0,c/Total ,0)
Next

Customers = dt.GetValues("OperationDetail")
For Each Customer2 As String In Customers
    Dim c2 As Double= dt.Compute("Sum(Hours)", "[OperationDetail] = '" & Customer2 & "'")
    dr = dt2.AddNew()
    dr("Category") = Customer2
    dr("Hours") = c2
    dr("%Percent") = iif(c2 > 0,c2/Total ,0)
Next

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


加好友 发短信
等级:五尾狐 帖子:1011 积分:6507 威望:0 精华:0 注册:2015/2/25 23:14:00
  发帖心情 Post By:2017/3/10 23:09:00 [只看该作者]


老师我预期的是下面这个结果,您的代码输出的不是这个结果,麻烦您再看看我的表。我试图把两个for Each语句嵌套在一起,但是不行。Prime Line Change、Production Prime、 Production Infill要放在Acquisition下面,Transit和Port call要放在Mobilization下面。 client equest、Weather、float要放在Standby下面,Noise、source、Nav system要放在Downtime下面。
Acquisition
      Prime Line Change
      Production Prime
      Production Infill
Mobilization
      Transit 
      Port call
Standby
     client equest
     Weather
     float
Downtime
     Noise
     source
     Nav system

下面是您的代码输出结果(暂时不说统计结果)
Acquisition
Downtime
Mobilization
Standby
client equest
float
Nav system
Noise
Port call
Prime Line Change
Production infill
Production Prime
source
Transit
Weather


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


加好友 发短信
等级:超级版主 帖子:106688 积分:542629 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/11 8:38:00 [只看该作者]

理解你的问题真费劲

Dim dt As DataTable = DataTables("daytj")
Dim Total As Double  = dt.Compute("sum(Hours)")
Dim Customers As List(Of String)
Customers = dt.GetValues("Category")
Dim dt2 As DataTable = DataTables("Dayresult")
Dim dr As DataRow
For Each Customer As String In Customers
    Dim c As Double = dt.Compute("Sum(Hours)", "[Category] = '" & Customer & "'")
    dr = dt2.AddNew()
    dr("Category") = Customer
    dr("Hours") = c
    dr("%Percent") = iif(c > 0,c/Total ,0)
    Dim Customers2 = dt.GetValues("OperationDetail","[Category] = '" & Customer & "'")
    For Each Customer2 As String In Customers2
        Dim c2 As Double= dt.Compute("Sum(Hours)", "[Category] = '" & Customer & "' and [OperationDetail] = '" & Customer2 & "'")
        dr = dt2.AddNew()
        dr("Category") = Customer2
        dr("Hours") = c2
        dr("%Percent") = iif(c2 > 0,c2/Total ,0)
    Next
Next


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


加好友 发短信
等级:五尾狐 帖子:1011 积分:6507 威望:0 精华:0 注册:2015/2/25 23:14:00
  发帖心情 Post By:2017/3/11 10:19:00 [只看该作者]

谢谢老师,真是麻烦您了。您的代码输出达到了目的。

刚刚我试着用for  to next 语句也可以达到要求,结果和您的一样,是不是for to next 语句不如for each 语句效率高?我看帮助里面很少用for next 语句。

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


加好友 发短信
等级:超级版主 帖子:106688 积分:542629 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/11 10:28:00 [只看该作者]

一样的,只是使用场景不一样,有时候只能通过索引进行循环

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


加好友 发短信
等级:五尾狐 帖子:1011 积分:6507 威望:0 精华:0 注册:2015/2/25 23:14:00
  发帖心情 Post By:2017/3/11 18:29:00 [只看该作者]

老师好,新增加一个问题,我需要将表daytj的日期列的值放到表Dayresult的日期列里,继续您上面的的程序
该这么写代码?这两个表的行数不一样。

 回到顶部
总数 66 上一页 1 2 3 4 5 6 7 下一页