我正在创建一个上传文档,该文档将用于将新帐户推送到我们的计费系统中。我有一个显示所有当前帐户及其ID(VEX_CustomL0)的表。我想从当前最高ID + 1开始填充上传文档中的ID列。
我尝试创建一个临时表(NumberLine),该表包含用于生成下一个500个ID的序列号。然后,我使用ID更新了上传文件。
UPDATE UPLOAD_FILE, NumberLine
SET UPLOAD_FILE.C_EZCOM = NumberLine.VAL;
我希望Access在NumberLine中取最高值(1-12)并填充上载文档。相反,它采用了最低值(488-500)。
答案 0 :(得分:0)
根据您的描述和所提供的有限信息,我假设您的表NumberLine
仅包含500条记录,而VAL
字段包含一个连续整数,例如:
+-----+
| VAL |
+-----+
| 1 |
| 2 |
| 3 |
| ... |
| 500 |
+-----+
在这种假设下,请注意您当前的UPDATE
查询正在使用笛卡尔积更新记录:即,对于UPLOAD_FILE
中的每个记录,用值更新C_EZCOM
的值{{1}中的 中每个记录的VAL
中的
您可以通过将NumberLine
查询更改为UPDATE
查询,并输出SELECT
和C_EZCOM
字段来直接观察这种行为。
因此,每个VAL
记录所保存的结果值将仅仅是C_EZCOM
查询最后遇到的NumberLine
中的记录(除非数据具有定义的排序顺序,使用UPDATE
子句,可能是任何记录。
虽然我可以确定您当前解决方案的问题,但是除非您提供一些示例数据以及预期结果,否则很难建议实现目标的最佳方法。