2013-11-15 61 views
-1

我有一个表中有许多item_number记录,这些记录在我的表内是重复的,而且每个item_number的表中的其他列都是空白的。更新记录,但限制为每个重复记录只有一行

表中的所有记录均位于产品组g024之下。但是,当我运行我的查询时,它会更新我的所有项目数字。

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

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

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) 
+0

,你能否告诉我们表的定义?如果表中有主键或其他独特字段,则有一个相对简单的解决方案,但我需要查看表格的其余部分。 –

+0

目前没有主键。这是item_number,但我用这个来做其他任务。然而,这可以放回去。除了item_number之外,表中没有其他唯一字段。 –

+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]);

测试在2010年MSACCESS

+0

请参阅http://stackoverflow.com/questions/19996862/inserting-extra-rows-within-table – Fionnuala

相关问题