0

最終的な結果として、別の dB にインポートするために使用できるクエリからファイルを作成したいと考えています。2 つの関連付けられたバーコード (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

しかし、Row 1 Table 1 と Row 1 Table 2 を比較し、BARCOD が異なることを確認し、それをクエリに含めるため、これは機能しません...誤検知です。私が探していると思うのは、STRING_TEMP [1] = [A,B] のようなサブクエリから文字列を作成する方法です (これをどのように表示しているか、適切な規則が何であるかはわかりません)。 TABLE_1.ITEM_NO の値に基づいて文字列を検索し、その文字列に TABLE_2.ITEM = TABLE_1.ITEM の場合の TABLE_2.BARCOD の値が含まれているかどうかを確認します。

これが私がやろうとしていることの明確な絵を描くのに十分な情報であることを願っています...提供された助けに感謝します。

ジョーディ・ファイク
www.kittyhawk.com

4

2 に答える 2

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 に答える
0

したいようです

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