以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  根据表A表B的数据,怎么生成表C的报表  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=96864)

--  作者:有点色
--  发布时间:2017/3/1 12:44:00
--  
Dim dtb As New DataTableBuilder("表D")
dtb.AddDef("姓名", Gettype(String), 32)
dtb.AddDef("表a", Gettype(Double))
For Each v As String In DataTables("表B").GetValues("第二列")
    dtb.AddDef(v, Gettype(Double))
Next
dtb.Build()
For Each v As String In DataTables("表A").GetValues("第一列")
    Dim dr1 As DataRow = DataTables("表D").AddNew()
    dr1("姓名") = v
    Dim sum As Double = 0
    For Each dr As DataRow In DataTables("表A").Select("第一列 = \'" & v & "\'")
        sum += val(dr("第二列"))
    Next
    dr1("表A") = sum
    sum = 0
    For Each dr As DataRow In DataTables("表A").Select("第一列 = \'" & v & "\'")
        sum += val(dr("第二列"))
    Next
    For Each vv As String In DataTables("表B").GetValues("第二列", "第一列 = \'" & v & "\'")
        sum = 0
        For Each dr As DataRow In DataTables("表B").Select("第一列 = \'" & v & "\' and 第二列 = \'" & vv & "\'")
            sum += val(dr("第三列"))
        Next
        dr1(vv) = sum
    Next
Next
MainTable = Tables("表D")

--  作者:有点色
--  发布时间:2017/3/1 23:31:00
--  
以下是引用liming730323在2017/3/1 22:53:00的发言:
最右面缺个合计,这个代码应该怎么写?

 

看懂下代码,留给你当作业。

 

循环每一列,累加每一个值,即可。