以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  同步数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=183961)

--  作者:kaituozhe
--  发布时间:2022/11/21 10:27:00
--  同步数据
 Dim cmd As New SQL Command
        Dim dt As DataTable
        cmd.Connectio nName = “”AAAAAA"
        cmd.Comma ndText = "SEL ECT 交易户名,交易卡号,交易账号,年度,期间 From {银行明细}"
        dt = cmd.Execut eReader()
        For Each dr As DataRow In dt.DataRows
            If DataTables("银行目录").Find("交易卡号 = \'" & dr("交易卡号") & "\'and 交易账号 = \'" & dr("交易账号") & "\'and 交易户名 = \'" & dr("交易户名") & "\' and 年度 = \'" & dr("年度") & "\'and 期间 = \'" & dr("期间") & "\'  ") Is Nothing Then
                Dim nr As DataRow = DataTables("银行目录").AddNew()
                For Each dc As DataCol In dt.DataCols
                    nr(dc.name) = dr(dc.name)
                Next
            End If
        Next
银行明细大约有70万行,上述代码运行时间至少的12小时,有没有办法快点?

--  作者:有点蓝
--  发布时间:2022/11/21 10:36:00
--  
用sql

insert into 银行目录(交易户名,交易卡号,交易账号,年度,期间) select 交易户名,交易卡号,交易账号,年度,期间 from 银行明细 as a where not exists(select * from 银行目录 as b where a.交易户名 = b.交易户名 and a.交易卡号=b...自己补充完整..)

--  作者:kaituozhe
--  发布时间:2022/11/21 14:59:00
--  
去数据库里写语句对吧?
--  作者:有点蓝
--  发布时间:2022/11/21 14:59:00
--  
用SQLCommand执行
--  作者:kaituozhe
--  发布时间:2022/11/23 11:13:00
--  
 Dim cmd As New SQLCo mmand
        Dim dt As DataTable
        cmd.Connec ti
        cmd.Comma ndText = "ins ert into 银行目录(交易户名,交易卡号,交易账号,年度,期间) Se lect 交易户名,交易卡号,交易账号,年度,期间 from 银行明细 As a where not exi sts(Se lect * from 银行目录 As b wh ere a.交易户名 = b.交易户名 And a.交易卡号=b.交易卡号 And a.交易账号=b.交易账号 And a.年度=b.年度 And a.期间=b.期间)"
        cmd.Execut eNonQuery()
上述代码我看不出什么错误,但是结果只有交易卡号及交易户名,其他的数据没有出来,银行明细中肯定有上述数据,是什么原因?

--  作者:kaituozhe
--  发布时间:2022/11/23 11:15:00
--  
Dim cmd As New SQLCo mmand
        Dim dt As DataTable
        cmd.Connec tio nName = “”AAAAAA"
        cmd.Comma ndText = "ins ert into 银行目录(交易户名,交易卡号,交易账号,年度,期间) Se lect 交易户名,交易卡号,交易账号,年度,期间 from 银行明细 As a where not exi sts(Se lect * from 银行目录 As b wh ere a.交易户名 = b.交易户名 And a.交易卡号=b.交易卡号 And a.交易账号=b.交易账号 And a.年度=b.年度 And a.期间=b.期间)"
        cmd.Execut eNonQuery()
上述代码我看不出什么错误,但是结果只有交易卡号及交易户名,其他的数据没有出来,银行明细中肯定有上述数据,是什么原因?

--  作者:kaituozhe
--  发布时间:2022/11/23 11:21:00
--  
现在可以了
--  作者:有点蓝
--  发布时间:2022/11/23 11:23:00
--  
肯定没有同时符合这些条件的数据,到数据库里查询看看

Select 交易户名,交易卡号,交易账号,年度,期间 from 银行明细 As a where not exists(Select * from 银行目录 As b where a.交易户名 = b.交易户名 And a.交易卡号=b.交易卡号 And a.交易账号=b.交易账号 And a.年度=b.年度 And a.期间=b.期间)

--  作者:kaituozhe
--  发布时间:2022/11/23 11:23:00
--  
出来的数据还是都有重复的
--  作者:有点蓝
--  发布时间:2022/11/23 11:26:00
--  
重复加上distinct

Select distinct 交易户名,交易卡号,交易账号,年度,期间 from 银行明细