我正在尝试使用另一个名为"DEPART_NAMES_AS_SUBMITTED"
的表来更新/修改名为"DEPART_NAMES_REQUIRED."
的表中的部门名称。我希望仅当"DEPART_NAMES_AS_SUBMITTED"
中的行号是在名为"DEPART_NAMES_REQUIRED."
的第二个表中的行号范围[LOW] [HIGH]内如果行号小于/大于[LOW] [HIGH]范围,则部门名称应保持不变。我没有成功尝试过多种SQL,包括:
UPDATE DEPT_NAMES_SUBMITTED INNER JOIN DEPT_NAMES_REQUIRED ON(DEPT_NAMES_SUBMITTED.LINE_NUMBER = DEPT_NAMES_REQUIRED.HIGH) AND (DEPT_NAMES_SUBMITTED.LINE_NUMBER = DEPT_NAMES_REQUIRED.LOW) SET DEPT_NAMES_SUBMITTED.DEPART_NAME = [DEPT_NAMES_REQUIRED].[DEPART_NAME]
WHERE (((DEPT_NAMES_REQUIRED.LINE_NUMBER) Between [low] And [high]));
感谢您抽出宝贵时间阅读并回答这个问题。
答案 0 :(得分:1)
如果您删除方括号并输入正确的逻辑,我认为您的查询很好:
UPDATE DEPT_NAMES_SUBMITTED ns INNER JOIN
DEPT_NAMES_REQUIRED hr
ON ns.LINE_NUMBER <= nr.HIGH AND
ns.LINE_NUMBER >= nr.LOW
SET ns.DEPART_NAME = nr.DEPART_NAME;
请注意,表别名使查询更容易编写和读取。