以文本方式查看主题

-  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=153290)

--  作者:zhuxinhui
--  发布时间:2020/8/6 11:01:00
--  提取多表指定列不重复员工工号
Dim s As Table = Tables("增减")
For i As Integer = 0 To s.Rows.count-1
    Dim b1 As String = s.Rows(i)("工号")
    Dim dr As DataRow
    Dim dn As DataRow
    dr = DataTables("工资表").Find("工号 = \'" & b1 & "\'")
    If dr Is Nothing Then
        dr = DataTables("工资表").AddNew()
        dr("工号") = s.Rows(i)("工号")
        dr("姓名") = s.Rows(i)("姓名")      
    End If
Next

提取多表指定列不重复员工工号,现在把上面的代码重复写了N次(一个表重复一次),是否有简单点的法子呢?

--  作者:有点蓝
--  发布时间:2020/8/6 11:11:00
--  
dim str() as string = {"增减","表B"}
for each n as string in str
Dim s As Table = Tables(n)
For i As Integer = 0 To s.Rows.count-1
    Dim b1 As String = s.Rows(i)("工号")
    Dim dr As DataRow
    Dim dn As DataRow
    dr = DataTables("工资表").Find("工号 = \'" & b1 & "\'")
    If dr Is Nothing Then
        dr = DataTables("工资表").AddNew()
        dr("工号") = s.Rows(i)("工号")
        dr("姓名") = s.Rows(i)("姓名")      
    End If
Next
next

如果会sql,并且不是临时表,直接使用SQL处理:
insert into {工资表} (工号,姓名) selec工号,姓名 from {增减} where 工号 not in (select 工号 from {工资表})

--  作者:zhuxinhui
--  发布时间:2020/8/6 11:36:00
--  
近段时间正看着SQL,关于后台统计取数查询的问题,感觉熟用SQL作用很大
--  作者:zhuxinhui
--  发布时间:2020/8/6 11:45:00
--  
insert into {工资表} (工号,姓名) selec工号,姓名 from {增减} where 工号 not in (select 工号 from {工资表})使用这个SQL是重复多写几次吗? 
--  作者:zhuxinhui
--  发布时间:2020/8/6 11:47:00
--  
写代码应该优先考滤使用SQL,使用后台数据,有点蓝老师是不是这样想
--  作者:有点蓝
--  发布时间:2020/8/6 12:18:00
--  
重复多写几次