从[任务代码区]中当前不存在的[Task_History_Report_063018]中选择42个唯一任务代码的查询是
SELECT Task_History_Report_063018.[Task code]
FROM Task_History_Report_063018 LEFT JOIN [Task Code Dict]
ON Task_History_Report_063018.[Task code] = [Task Code Dict].[Task Code]
WHERE ((([Task Code Dict].[Task Code]) Is Null))
GROUP BY Task_History_Report_063018.[Task code];
当我将其转换为以下更新查询时:
UPDATE Task_History_Report_063018 LEFT JOIN [Task Code Dict]
ON Task_History_Report_063018.[Task code] = [Task Code Dict].[Task Code]
SET [Task Code Dict].[Task Code] = [Task_History_Report_063018].[Task code]
WHERE ((([Task Code Dict].[Task Code]) Is Null));
它将尝试使用201个非唯一任务代码更新字典。这是42个唯一的代码,并由其重复项扩展。
我尝试过:
UPDATE (SELECT Task_History_Report_063018.[Task code]
FROM Task_History_Report_063018
GROUP BY Task_History_Report_063018.[Task code]) as GroupedTasks
LEFT JOIN [Task Code Dict]
ON GroupedTasks.[Task code] = [Task Code Dict].[Task Code] SET [Task Code Dict].[Task Code] = GroupedTasks.[Task code]
WHERE ((([Task Code Dict].[Task Code]) Is Null));
当我选择数据表视图时,我看到对应于新的唯一任务代码的42个空记录,但是当我尝试执行时,出现错误消息:
操作必须使用可更新的查询。
答案 0 :(得分:0)
好的,解决此问题。由于某种原因,我在尝试进行追加时试图进行更新查询。这样就完成了工作:
INSERT INTO [Task Code Dict] ( [Task Code] )
SELECT DISTINCT Task_History_Report_063018.[Task code]
FROM Task_History_Report_063018 LEFT JOIN [Task Code Dict]
ON Task_History_Report_063018.[Task code] = [Task Code Dict].[Task Code]
WHERE ((([Task Code Dict].[Task Code]) Is Null));