0

最终结果是我想从查询中创建一个文件,然后我可以使用它来导入另一个 dB。我有可以有两个相关条形码 (BARCOD) 的产品编号 (ITEM_NO)。我想确保 TABLE_2 提供的条形码不在 TABLE_1 中(因为有时有)

TABLE_1(现有条码)

ITEM_NO | BARCOD
-----------------
  001   |   A
  001   |   B
  002   |   C
  003   |   E
  003   |   F
  004   |   G
  005   |   I

TABLE_2(新条形码)

ITEM_NO | BARCOD
-----------------
 001    | B
 002    | D
 003    | F
 004    | H
 005    | J

所以我想要的输出文件是

ITEM_NO | BARCOD
-----------------
 002    | D
 004    | H
 005    | J

作为一个起点,我有:

SELECT TABLE_1.ITEM_NO, TABLE_2.ITEM_NO, TABLE_1.BARCOD, TABLE_2.BARCOD
FROM TABLE_2 INNER JOIN TABLE_1 ON TABLE_2.ITEM_NO=TABLE_1.ITEM_NO
WHERE TABLE_1.BARCOD<>TABLE_2.BARCOD
ORDER BY TABLE_1.ITEM_NO

但这不起作用,因为它将第 1 行表 1 与第 1 行表 2 进行比较,发现 BARCOD 不同并将其包含在查询中……误报。我想我正在寻找的是一种从子查询创建字符串的方法,例如 STRING_TEMP [1] = [A,B] (请原谅我如何显示这个,不确定正确的约定是什么),所以基于 TABLE_1.ITEM_NO 的值的字符串,然后检查该字符串是否包含 TABLE_2.BARCOD 的值,其中 TABLE_2.ITEM = TABLE_1.ITEM

希望这是足够的信息来清楚地描绘出我正在尝试做的事情......感谢您提供的任何帮助,

Jordie Fike
www.kittyhawk.com

4

2 回答 2

0

看起来你想要

SELECT ITEM_NO, BARCOD
FROM TABLE_2
WHERE BARCOD NOT IN
    (SELECT BARCOD FROM TABLE_1)
于 2013-07-18T16:10:49.463 回答
0

据我了解,您想要:

SELECT *
FROM TABLE_1
WHERE ITEM_NO IS NOT IN (SELECT DISTINCT ITEM_NO FROM TABLE_2)
ORDER BY ITEM_NO;

这会从中选择所有TABLE_1尚未在TABLE_2.

TABLE_2如果您想要其中尚未包含的所有数据TABLE_1,只需切换语句:

SELECT *
FROM TABLE_2
WHERE ITEM_NO IS NOT IN (SELECT DISTINCT ITEM_NO FROM TABLE_1)
ORDER BY ITEM_NO;

我希望这会有所帮助,这就是您所追求的。

于 2013-07-18T16:08:34.720 回答