创建具有多个条件的更新查询?

时间:2013-10-18 22:30:57

标签: sql ms-access ms-access-2013

我们的产品详情有Access 2013数据库,我在Access工作了大约一个月。我们在表1中有SKU的字段以及类别,描述等。

现在我需要在表1中添加更多字段,包括权重列和缺货消息列。

我们设置它只允许一个SKU实例,没有重复。我认为这就是为什么当我尝试导入我的Excel文件时使用权重&消息,导入失败,因为所有“记录都因密钥违规而丢失”。我的文件没有其他错误。我也在分裂数据库的前端工作,如果这有所不同。

因此,我将Excel文件导入到新表中(表2)。我正在尝试运行UPDATE查询,但我在标准方面遇到了困难。

例如,在SKU F496,K4492-92和P49201上,我需要更新它们的空白重量&表1中的消息字段,表2中的值用于权重和消息(所有权重和消息都是唯一的)。这将适用于2000多种产品。

这似乎是一个基本的东西,我搜索和搜索但也许我没有正确的短语。

1 个答案:

答案 0 :(得分:1)

首先从查询设计器的“设计视图”构建SELECT查询。选择两个表,然后右键单击每个表的标题以为表名指定别名:t1用于Table 1;和t2 Table 2。接下来,在SKU字段之间拖一行,在它们之间创建INNER JOIN。将SKU中的weightmessageTable 1字段添加到设计网格中。运行查询(切换到数据表视图)以确认结果是否合理。如果您然后切换到SQL View,您应该看到类似于此的声明...

SELECT
    t1.SKU,
    t1.weight,
    t1.message
FROM
    [Table 1] AS t1
    INNER JOIN [Table 2] AS t2
    ON t1.SKU = t2.SKU;

如果没问题,请切换回“设计视图”,找到“设计”功能区的“查询类型”部分,并将类型更改为“更新”。在weight字段下的“更新至:”行中,输入 [t2]。[weight] 。并在message下输入 [t2]。[message]

当你再次切换到SQL View时,你应该看到这样的语句......

UPDATE
    [Table 1] AS t1
    INNER JOIN [Table 2] AS t2
    ON t1.SKU = t2.SKU
SET
    t1.weight = [t2].[weight],
    t1.message = [t2].[message];

如果看起来没问题,请执行查询。如果更新无法按预期工作,请复制语句文本,将其粘贴到您的问题中,包含任何错误消息的全文,并解释结果与您所需的结果有何不同。