MicrosoftAccess/Excel:如果一个表中的字段与另一个表中的字段匹配(如果这两个表中的两个字段匹配),我如何更新一个表中的字段?
问题描述:
我是一名实习生,负责一些数据清理工作,并与我正在处理的一些数据达成僵局。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之间匹配的所有字段,然后根据该查询运行单独的更新查询,将字段更新为正确的值。
答
的SQL格式:
可惜我不能评论,所以我必须使用一个答案,但我会建议使用Variables和Cursor通过SQL来实现这一目标。
Cursor
是一个会逐一读取每一行的循环。在Cursor中,您可以将该值存储到变量中并进行比较。如果他们匹配,那么运行更新脚本:
DECLARE @Value1 = NVARCHAR(50)
DECLARE @Value2 = NVARCHAR(50)
每次通过游标去时,将更新每个值
所以更新语句可能会像
Update [GPFixedAsset]
Set [OasisPar] = @Value1
Where @Value1 = Value2
我不得不有一天做类似的事情,所以这是我做到的最好的方式。
希望它能帮助, 山姆
它也可能在Excel中使用公式是可能的,也只是作为一个参考,而不是从1处复制值到另一个。绝对可以在Excel中使用VBA,在Access中使用SQL。你究竟在寻找什么? – Spidey