在通过 ADO SQL 的 VBA Excel 中,我如何才能“仅引用一次”记录并将其链接到另一个以避免调用相同的记录?
Posted
技术标签:
【中文标题】在通过 ADO SQL 的 VBA Excel 中,我如何才能“仅引用一次”记录并将其链接到另一个以避免调用相同的记录?【英文标题】:In VBA Excel through ADO SQL, How may I refer to a record "only once" and link it to another avoiding the same record to be recalled? 【发布时间】:2016-01-18 16:06:59 【问题描述】:我有一个包含 3 个字段的表格: (数量有正负) TAB_A 身份证 |数量 |相关_ID 1 100 *? (它是 2 并且是正确的) 2 -100 (无) 3 100 *? (是 2 但应该是 4) 4 -100 (无)
以及以下 SQL 查询:
UPDATE Table_A AS ta LEFT JOIN Table_A AS tb ON ta.[quantity] = -tb.[quantity]
SET ta.Related_ID = tb.[ID]
WHERE ta.[quantity] > 0 AND tb.[Quantity] < 0
我想在查询中添加一个识别已使用 ID 并且不会再次使用它们的部分。
【问题讨论】:
我知道完成任务的其他方法是通过 ado 记录集解析所有记录,但这需要很长时间。 【参考方案1】:这样的事情可能会有所帮助,具体取决于您的所有数据是否都与您发布的样本一样。
query from question
and tb.id =
(select min(id)
from table_a
where id > ta.id)
语法可能不是 100% 正确,但逻辑应该没问题。通过将更新查询更改为选择查询并查看结果来进行测试。
【讨论】:
这个解决方案符合我的问题,但我不认为它是否能够涵盖所有情况。初步结果也可以列出如下: 1. -100 2. -90 3. -100 4. 100 5. 90 6. 100 数量可以任意顺序排列。【参考方案2】:此解决方案符合我的问题,但我认为它不能涵盖所有情况。初步结果也可以列举如下:
-
-100
-90
-100
100
90
100
数量可以任意排列。
【讨论】:
以上是关于在通过 ADO SQL 的 VBA Excel 中,我如何才能“仅引用一次”记录并将其链接到另一个以避免调用相同的记录?的主要内容,如果未能解决你的问题,请参考以下文章