繁体   English   中英

如何进行更新查询

[英]How to make an update query

我有一张桌子,上面有五个字段,

| 邮递区号| 数据1 | 数据2 | 数据3 | 代码

我的表格及其下面的数据都有类似的记录,因此字段[data 1],[data2]和[data 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__ |

我怎样才能做到这一点 ?

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

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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM