在试图弄清楚如何编写 SQL 行以从项目中获取值时遇到一些问题。让我解释一下情况。我们有两个不同的数据库,一个是国内的,一个是进口的。它们是相同的项目,只是产品代码不同。不同之处只是国际项目最后有一个-h。所以例子..
12345 < domestic
12345-h < import
我们有一个将两者结合在一起的提要,但进口商品缺少 upc 代码,而国内商品有它们。所以我想做的是让它匹配两个产品代码并将 upc 添加到 -h 项目。
有任何想法吗?
您可以将两个表与
INNER JOIN ON (concat(domestic.itemid, '-h') = international.itemid)
您可能需要针对 Ms Access SQL 方言进行调整。我认为对于 concat,您可以使用 &,IIRC。
我认为你想要这样的结构:
select <fields that you want>
from ((select <list of fields from domestic>, itemid as lookupitem
from domestic d
) union all
(select <list of most fields from import>, replace(itemid, '-h', '') as lookupitem
from import i
)
) f left join
lookup lu
on f.lookupitemid = lu.itemid
In other words, you can create the field of the right form in a subquery and then join it to the lookup table used to get UPC. I use "replace", on the assumption that some codes may not actually end with the "-h".