2016-04-25 175 views
1

我是一名实习生,负责一些数据清理工作,并与我正在处理的一些数据达成僵局。MicrosoftAccess/Excel:如果一个表中的字段与另一个表中的字段匹配(如果这两个表中的两个字段匹配),我如何更新一个表中的字段?

我试图将匹配的序列号和零件号从一个表移动到新表,但只有当其他两个字段跨表匹配时。

基本上是:

I want [GPFixedAsset].[OasisPar] to update to [OasisFixedAssets].[PartNumber] 
if [GPFixedAsset].[OasisLink] = [OasisFixedAssets].[SysIDOasis] 

然后同为序列号:

[GPFixedAsset].[OasisSer] to update to [OasisFixedAssets].[SerialNumber] 
if [GPFixedAsset].[OasisLink] = [OasisFixedAssets].[SysIDOasis]. 

我还在努力学习SQL,但它现在是一个有点混乱。

如果可以在Excel中用一个很棒的公式完成。但是,如果我可以运行两个单独的查询来更新我的表格,那么我可以将它导出回Excel,那真是太棒了。编辑:
谢谢大家的答案。最后,我通过运行选择查询来查找OasiLink和SysIDOasis之间匹配的所有字段,然后根据该查询运行单独的更新查询,将字段更新为正确的值。

+0

它也可能在Excel中使用公式是可能的,也只是作为一个参考,而不是从1处复制值到另一个。绝对可以在Excel中使用VBA,在Access中使用SQL。你究竟在寻找什么? – Spidey

回答

0

的SQL格式:

可惜我不能评论,所以我必须使用一个答案,但我会建议使用VariablesCursor通过SQL来实现这一目标。

Cursor是一个会逐一读取每一行的循环。在Cursor中,您可以将该值存储到变量中并进行比较。如果他们匹配,那么运行更新脚本:

DECLARE @Value1 = NVARCHAR(50) 
DECLARE @Value2 = NVARCHAR(50) 

每次通过游标去时,将更新每个值

所以更新语句可能会像

Update [GPFixedAsset] 
Set [OasisPar] = @Value1 
Where @Value1 = Value2 

我不得不有一天做类似的事情,所以这是我做到的最好的方式。

希望它能帮助, 山姆

相关问题