更新记录但限制为每个重复记录只有一行

时间:2013-11-15 10:50:13

标签: sql ms-access

我有一个包含许多item_number记录的表,这些记录在我的表中是重复的,并且表中的每个item_number的其他列都是空白的。

表中的所有记录都在g024的产品组下。但是,当我运行我的查询时,它将使用此更新我的所有项目编号。

我想要它做的是每个item_number只填充一次资源代码,操作和操作描述,而不用查询中的条件填充每个item_number的remianing空白字段。

稍后我将使用不同的更新查询填充这些其他黑色字段。

UPDATE resource1 SET [resource code] ='TOOLASSY', OPERATION = '10',   OPERATION_DESCRIPTION     = 'MOULD TOOL ASSEMBLY'
WHERE [product group]="G024" 

我确实尝试过这样的方法,使查询只更新每个item_number一次。我查看了TOP关键字,但不确定它是否在正确的行上。

我需要在子查询中使用类似DISTINCT关键字的更新查询。

UPDATE resource1 SET [resource code] ='TOOLASSY', OPERATION = '10', OPERATION_DESCRIPTION = 'MOULD TOOL ASSEMBLY'
WHERE [product group]="G024" AND ITEM_NUMBER IN(SELECT TOP 1 ITEM_NUMBER FROM RESOURCE1)

1 个答案:

答案 0 :(得分:0)

更新: UPDATE resource1 SET [resource code] ='TOOLASSY', OPERATION = '10', OPERATION_DESCRIPTION = 'MOULD TOOL ASSEMBLY' WHERE [product group]="G024" AND [num] IN (SELECT MinNum FROM (SELECT resource1.[product group], resource1.[item_number], MIN(resource1.[num]) AS MinNum FROM resource1 GROUP BY resource1.[product group], resource1.[item_number]) Q1 WHERE Q1.[product group]=resource1.[product group] AND Q1.[item_number]= resource1.[item_number]);

在MS Access 2010中测试。