我从其他人那里得到了一张表格,其中列出了各种选件代码,型号和可用性。目前,这些是在后端手动更新的(我知道...),并且需要3个月的时间。我想自动化该过程,我尝试使用CASE WHEN,但似乎Access无法处理它。我运行了一个查询,该查询基于一个子句进行了更新,并且运行良好,请参见下文。表1在我的数据库中,表2是我得到的转换成可用格式的数据。它只是一个有两列的表。选项代码和可用性(与特定型号有关)
UPDATE Table1
SET Table1.Availability = 'Y'
WHERE
(
SELECT Table1.Availability
FROM Table1
INNER JOIN Table2
ON Table1.Code = Table2.Code
WHERE Table2.Availability='OPT'
)
这可行,但是对于每种可用性类型都需要一个新的查询。以下是我针对每种可用性类型进行更新的尝试。它说@Switch(...
UPDATE Table1
SET Table1.Availability =
Switch(
Table2.Availability = 'OPT', 'Y',
Table2.Availability = 'STD', 'S',
Table2.Availability = 'DEL', 'N'
)
FROM Table1
INNER JOIN Table2
ON Table1.Code = Table2.Code
WHERE ModelCode = '1234'
;
我不确定我是否在这里正确使用了开关,不胜感激。如果不是很清楚,我想要的是Table2.Availability = OPT,UPDATE Table1.Availability到“ Y”,其中代码相同,而Model =特定模型
我必须指定一个模型代码,因为给定选项代码(代码)的可用性是唯一的。我得到的数据是一团糟,最容易将其分类以建模特定数据。
预先感谢:)
答案 0 :(得分:0)
请考虑以下经过测试的有效语法:
UPDATE Table1
INNER JOIN Table2
ON Table1.Code = Table2.Code
SET Table1.Availability =
Switch(
Table2.Availability = 'OPT', 'Y',
Table2.Availability = 'STD', 'S',
Table2.Availability = 'DEL', 'N'
)
WHERE ModelCode = '1234'
;