以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]分组行计算  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=170388)

--  作者:lgj716330
--  发布时间:2021/7/24 11:04:00
--  [求助]分组行计算
生成分组统计后如下图,我想计算第二个分组行的值,这个条件应该怎么写

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

Dim bd57 As New SQLGroupTableBuilder("统计表57","产值表")
bd57.C
bd57.Groups.AddDef("生产区域")
bd57.Groups.AddDef("组别")
bd57.Groups.AddDef("月份")
bd57.Totals.AddDef("数量")
bd57.Totals.AddDef("金额")
bd57.Build

    If r.IsGroup Then
        Dim s1 As String = r("生产区域")
        Dim s11,s12 As String
        s11 = s1.Replace(" 区域小计","")  
        s12 = s1.Replace(" 组别小计","") 
        If r.level=1 Then
        r("月均产值") =DataTables("统计表57").Compute("Avg(金额)","生产区域 = \'" & s11 & "\' and 组别 = \'" & s12 & "\'")  
        End If
    End If
统计表中有很多列,大部分都是SUM合计的,个别列需要计算平均值
不同的生产区域,组别是有相同的,上面标色地方的判断条件不知怎么写
[此贴子已经被作者于2021/7/24 11:07:18编辑过]

--  作者:有点蓝
--  发布时间:2021/7/24 11:30:00
--  
    If r.IsGroup andalso r.level=1 Then
        Dim s1 As String = r("生产区域")
        Dim s11,s12 As String
        s11 = s1.Replace(" 区域小计","")  
        s12 = tables("统计表57").rows(i-1,true)("生产区域").Replace(" 组别小计","") 
        r("月均产值") =DataTables("统计表57").Compute("Avg(金额)","生产区域 = \'" & s11 & "\' and 组别 = \'" & s12 & "\'")  
    End If

--  作者:lgj716330
--  发布时间:2021/7/24 12:25:00
--  

[此贴子已经被作者于2021/7/24 12:57:58编辑过]

--  作者:lgj716330
--  发布时间:2021/7/24 13:20:00
--  

Dim bd57 As New SQLGroupTableBuilder("统计表57","产值表")

bd57.C

bd57.Groups.AddDef("生产区域")

bd57.Groups.AddDef("组别")

bd57.Groups.AddDef("月份")

bd57.Totals.AddDef("数量")

bd57.Totals.AddDef("金额")

bd57.Build

 

Dim t As Table = Tables("综合分析报表_Table1")

 

Dim r As Row

For i As Integer = 0 To t.Rows.Count(True) - 1

    r = t.Rows(i,True)

    If r.IsGroup AndAlso r.level=1 Then

        Dim s1 As String = r("生产区域")

        Dim s11,s12 As String

        s11 = s1.Replace(" 区域小计","") 

        s12 = Tables("综合分析报表_Table1").rows(i-1,True)("生产区域").Replace(" 组别小计","")

        r("月均产值") =DataTables("统计表57").Compute("Avg(金额)","生产区域 = \'" & s11 & "\' and 组别 = \'" & s12 & "\'") 

    End If

Next

msgbox(s12)显示的是生产区域

msgbox(s11)显示的是“** 组别小计”

[此贴子已经被作者于2021/7/24 13:25:47编辑过]

--  作者:lgj716330
--  发布时间:2021/7/24 13:30:00
--  
知道怎么调整了

    If r.IsGroup AndAlso r.level=1 Then

        Dim s1 As String = r("生产区域")

        Dim s11,s12 As String

        s11 = s1.Replace(" 组别小计","") 

        s12 = Tables("综合分析报表_Table1").rows(i-1,True)("生产区域").Replace(" 组别小计","")

        r("月均产值") =DataTables("统计表57").Compute("Avg(金额)","生产区域 = \'" & s12 & "\' and 组别 = \'" & s11 & "\'") 

    End If


--  作者:有点蓝
--  发布时间:2021/7/24 13:35:00
--  
搞反就调换一下咯

或者试试
If r.IsGroup AndAlso r("生产区域") like "*区域小计*" Then