比较2个项目,但使用找到的项目中的值

时间:2013-03-29 19:49:08

标签: sql ms-access feed

在尝试弄清楚如何编写SQL行以从项目中获取值时遇到一些问题。让我解释一下情况。我们有2个不同的数据库,一个用于国内,一个用于导入。它们只是不同的产品代码。不同之处仅在于国际物品最后有-h。那样的例子..

12345   < domestic 
12345-h < import

我们有一个将两者结合在一起的Feed,但是导入项目缺少upc代码,而国内项目则包含它们。所以我想要的是让它匹配两个产品代码并将upc添加到-h项目。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以使用

加入这两个表
 INNER JOIN ON (concat(domestic.itemid, '-h') = international.itemid)

您可能必须为Ms Access SQL方言调整此值。我认为对于concat你可以使用&amp;,IIRC。

答案 1 :(得分:0)

我想你想要一个像这样的结构:

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

换句话说,您可以在子查询中创建正确形式的字段,然后将其连接到用于获取UPC的查找表。我使用“替换”,假设某些代码实际上可能不以“-h”结尾。