我正在尝试使用映射表中的值更新表。我认为它是一个UPDATE和SELECT语句,但我无法弄清楚如何处理条件。这是在VBA访问中。
我有两个包含以下字段的表:
mainTable: [column1],[column2],[xcode],[ycode]
mapTable: [xcode],[ycode],[mapping]
我需要从mapTable进行映射,但它具有以下条件
If mainTable.[column1] = "000" or mainTable.[column1] = "001" Then
mainTable.[column2] = mapTable.[mapping]
WHERE mapTable.[xcode] = mainTable.[xcode]
AND mapTable.[ycode] = mainTable.[ycode]
Else
mainTable.[column2] = mapTable.[mapping]
WHERE mapTable.[xcode] = mainTable.[xcode]
End If
有没有办法在单个SQL查询中捕获它?
答案 0 :(得分:1)
您需要两个查询,这是一件好事:一个查询可以获得if
获得的结果,而另一个查询会为您提供else
获得的结果。< / p>
查询1:
update maintable m inner join maptable map on m.xcode = map.xcode and m.ycode = map.ycode
set m.column2 = map.mapping
where m.column1 = "000" or m.column1 = "001"
查询2:
update maintable m inner join maptable map on m.xcode = map.xcode
set m.column2 = map.mapping
where NOT (m.column1 = "000" or m.column1 = "001")