在Excel上使用VBA ADO,我正在寻找一个更新查询来获得单一的1比1匹配

时间:2017-12-18 14:32:28

标签: sql excel vba excel-vba ado

我有一个类似于以下表格(tab1):

ID Descr Related_ID
1  a     2
2  a     1
3  a     1
4  a     1
5  b     6
6  b     5
7  b     5
8  b     5

我的查询类似于:

Update [tab1] as T1 INNER JOIN [tab1] as t2
ON t1.[Descr] = t2.[Descr]
SET t1.[Related_ID] = t2.[ID]
WHERE t1.[ID] <> t1.[Related_ID]

这个想法是在表的行之间创建耦合/对,以便仅在另一行的一个ID上获得每一行。 查询实际执行的操作是每次使用后一个table2 ID覆盖Related_ID。 而不是仅使用任何ID一次。 我想要的结果是:

ID Descr Related_ID
1  a     2
2  a     1
3  a     4
4  a     3
5  b     6
6  b     5
7  b     8
8  b     7

我想创建一对/一对元素,其中一个的related_id是另一个的ID,反之亦然。

你能帮我吗?

PS:

一个。我在excel上使用vba adodb而不是访问

B中。如果我要实现WHERE not [ID] IN (SELECT [ID] FROM [tab2] WHERE ...)之类的子查询,我需要保持很高的效率 由于表有数百行

,效率将受到很大影响(从几秒到半小时)

感谢

0 个答案:

没有答案