以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何实现多表表结构不相同合并在一表数据不重复?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=185887)

--  作者:lin98
--  发布时间:2023/3/23 15:16:00
--  如何实现多表表结构不相同合并在一表数据不重复?
如何实现多表表结构不相同合并在一表数据不重复?如图

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




上面代码无法实现,如何做才能实现
[此贴子已经被作者于2023/3/23 17:28:25编辑过]

--  作者:有点蓝
--  发布时间:2023/3/23 15:21:00
--  
For i As Integer = 0 To Vals.Count - 1
    Dim dr As DataRow = DataTables("表D").find("产品编号=\'" & Vals(i)(0) & "\'")
if dr is nothing then
dr  = DataTables("表D").AddNew()
    dr("产品编号") = Vals(i)(0)
end if
    dr("产品编号") = Vals(i)(0)
    dr("品名") = Vals(i)(1)
    dr("表A数量") = Vals(i)(2)
Next

--  作者:lin98
--  发布时间:2023/3/23 16:07:00
--  
For i As Integer = 0 To Vals.Count - 1
    Dim dr As DataRow = DataTables("表D").find("产品编号=\'" & Vals(i)(0) & "\'")
if dr is nothing then
dr  = DataTables("表D").AddNew()
    dr("产品编号") = Vals(i)(0)
end if
    dr("产品编号") = Vals(i)(0)
    dr("品名") = Vals(i)(1)
    dr("表C数量") = Vals(i)(2)
Next


老师,我测试一下,表C少二个数据,D1、D2的值没加入表D,会漏数据,如何处理


--  作者:有点蓝
--  发布时间:2023/3/23 16:17:00
--  
代码没有问题,请上传实例测试
--  作者:lin98
--  发布时间:2023/3/23 16:32:00
--  

[此贴子已经被作者于2023/3/23 17:27:42编辑过]

--  作者:lin98
--  发布时间:2023/3/23 16:33:00
--  
测试几次,还是有漏数据
--  作者:有点蓝
--  发布时间:2023/3/23 16:37:00
--  
Dim Vals2 As List(Of String())
Vals2 = DataTables("表C").GetValues("产品编号|品名|数量")
For i As Integer = 0 To Vals2 .Count - 1

--  作者:y2287958
--  发布时间:2023/3/23 17:21:00
--  
Dim bm As String = "表D1"
Dim jba As New SQLJoinTableBuilder(bm, "表A")
jba.AddCols("产品编号", "品名", "数量 as 表A数量")
Dim da As fxDataSource = jba.BuildDataSource()

Dim jbb As New SQLJoinTableBuilder(bm, "表B")
jbb.AddCols("产品编号", "品名", "数量 as 表B数量")

Dim jbc As New SQLJoinTableBuilder(bm, "表C")
jbc.AddCols("产品编号", "品名", "数量 as 表C数量")

Dim Cols As String = "产品编号|品名"
da.Combine(Cols.split("|"), jbb.BuildDataSource(), Cols.split("|"))
da.Combine(Cols.split("|"), jbc.BuildDataSource(), Cols.split("|"))
da.Show(bm)
[此贴子已经被作者于2023/3/23 17:21:43编辑过]