如何进行更新查询

时间:2011-12-09 23:44:25

标签: ms-access ms-access-2007

我有一个包含五个字段的表,

|邮政编码|数据1 |数据2 |数据3 |代码|

我的表格和下面的数据我有这样的记录音,所以字段[数据1],[数据2]和[数据3]

有很多重复的数据
 Zip | Data 1 | Data 2 | Data 3 | Code |
 123 | __A__ |__ B__ |__ C__ |_____ |
 234 | __A__ |__ B__ |__ C__ |_____ |
 456 | __A__ |__ B__ |______ |_____ |
 678 | __A__ |__ B__ |__ C__ |_____ |
 981 | __A__ |__ B__ |______ |_____ |

我的目标是找到匹配的行值,这样我就有了一组独特的行(我通过查询创建了这个行)

| Data 1 | Data 2 | Data 3 | Code |
| __A__ |__ B__ |__ C__ |_____ |
| __A__ |__ B__ |______ |_____ |

我想要做的只是在该查询中输入一个代码值,以便它反映在现有表上并以所有重复值显示代码,

所以说我在查询中输入这些数据(我出于某种原因无法输入)

| Data 1 | Data 2 | Data 3 | Code |
| __A__ |__ B__ |__ C__ |__C1__ |
| __A__ |__ B__ |______ |__C2__ |

我想要表格中的以下输出

Zip | Data 1 | Data 2 | Data 3 | Code |
123 | __A__ |__ B__ |__ C__ |__C1__ |
234 | __A__ |__ B__ |__ C__ |__C1__ |
456 | __A__ |__ B__ |______ |__C2__ |
678 | __A__ |__ B__ |__ C__ |__C1__ |
981 | __A__ |__ B__ |______ |__C2__ |

我该怎么做?

1 个答案:

答案 0 :(得分:1)

首先,选择您的不同值并将它们插入临时表或临时表中:

TempTable
Data1
Data2
Data3
Code null

接下来,在表中插入不同的行

insert into TempTable (Data1, Data2, Data3)
select distinct data1, data2, data3 from myTable

接下来,使用您想要的每条记录的代码更新临时表。仍然不确定您是否考虑到特定值或者您是否希望它只是一个“唯一”值。如果是唯一值,则可以将代码设置为标识并跳过此步骤

update temptable set Code = '' where Data1 = x and Data2 = y and Data3 = z

最后,使用值

更新原始表格
update myTable
inner join tempTable 
   on [myTable].data1 = [tempTable].data1 
      and [myTable].data2 = [tempTable].data2 
      and [myTable].data3 = [tempTable].data3
  set [myTable].Code = [tempTable].Code;