我正在创建一个上传文档,用于将新帐户推送到我们的计费系统中。我有一个表格,显示所有活期账户及其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)。
根据您的描述和提供的有限信息,我假设您的表NumberLine
只包含500条记录,VAL
字段包含一个连续整数,例如:
+-----+
| VAL |
+-----+
| 1 |
| 2 |
| 3 |
| ... |
| 500 |
+-----+
在此假设下,请注意,您当前的UPDATE
查询正在使用笛卡尔乘积更新记录:也就是说,对于UPLOAD_FILE
中的每个记录,用VAL
的值更新C_EZCOM
的值,用于NumberLine
中的每个记录。。。
通过将UPDATE
查询更改为SELECT
查询,输出C_EZCOM
和VAL
字段,可以直接观察到这种行为。
因此,每个C_EZCOM
记录保存的结果值将只是UPDATE
查询最后遇到的NumberLine
中的任何记录(除非数据具有使用ORDER BY
子句定义的排序顺序,否则可能是任何记录)。
虽然我可以确定您当前解决方案的问题,但除非您提供一些样本数据和预期结果,否则很难建议实现目标的最佳方法。