私の主な問題は、Google から受け入れ可能な回答を得るためにどのように表現するかを考え出すことだと思う問題があります。
状況:
テーブル A は「請求書」であり、2 つの場所でテーブル B の「ジョブ」にリンクする列があります。「ジョブ番号」列または「クライアント番号」列にリンクしています。主な問題は、クライアントがジョブを設定する代わりにジョブを設定した場合、「クライアント番号」と「ジョブ番号」が同じ番号になる可能性があるという事実です。
私が得ているのは、どちらかの列に同じ数字があるたびに、結果が重複していることです。
これは状況を非常に単純化して、もう少し理解しやすくしようとしていますが、基本的には、テーブル A を見て値を取得し、一致しない場合は列 B1 と比較し、一致しない場合は B2 と比較するステートメントを探しています一致しないものは結果から除外されます。重要なのは、B1 と比較したときに一致する場合、B2 と比較しないことです。
これを行う非常に明白な演算子または関数の方向性の単なるポイントであっても、これに関する任意の助けをいただければ幸いです。とても長い一日の終わりを迎えようとしています。
ありがとうございました。
編集:
さらなる説明:
Invoice Table
---------------------------------
PK, INVOICE_NUMBER, LINK_TO_JOB
Job Table
---------------------------------
PK, JOB_NUMBER, CLIENT_JOB_NUMBER
問題の核心は、両方の PK がデータベースで生成された連続番号であり、重複がないことです。請求書番号とジョブ番号は両方ともアプリケーションで生成された連番であり、重複することはありません。ジョブへのリンクはアプリケーションで生成され、請求書が発行されると、ルールに基づいてジョブ テーブルの 2 つのフィールドのいずれかにリンクされます。簡単にするために、これらのルールはクライアント ジョブ番号へのリンクがある場合、ジョブ番号にリンクされていない場合とします。
現在、クライアントのジョブ番号は購入者に書き込まれるフィールドです。多くの間違いが発生する可能性があり、実際に発生しますが、このフィールドにも多くのがらくたが入力されます. 「Email」「Fax」などは非常に一般的な回答です。そのため、「電子メール」のようながらくたがある場合、同じ「電子メール」タグを持つ一連の他のフィールドにリンクします。
それが問題の 1 です。
問題 2 Where ステートメント:
SELECT INVOICE_NUMBER,
LINK_TO_JOB
JOB_NUMBER,
CLINET_JOB_NUMBER
FROM JOBS_TABLE a,
INVOICE_TABLE b
欲望の結果を得るためにwhereステートメントを設定するにはどうすればよいですか、私は試しました:
WHERE (LINK_TO_JOB = JOB_NUMBER OR LINK_TO_JOB = CLIENT_JOB_NUMBER)
これは、ジョブ番号とクライアント ジョブ番号が同一である場合や、「email」などの回答に同一のものが複数ある場合など、多数の倍数を返します。持てる力で最善を尽くす。しかし、私がやりたいことは次のとおりです。
WHERE (LINK_TO_JOB = JOB_NUMBER (+) OR LINK_TO_JOB = CLIENT_JOB_NUMBER (+))
OR演算子で外部結合を使用できるため、エラーが返されます。
これで何も得られない場合は、OR 接続を使用して Select Distinct を投入し、請求プロセスに冗長性を構築して、データベースがリンクを見逃したときに手動プロセスでそれらをキャッチする必要があるかもしれません。
私はどんなアイデアにも耳を傾けていますが。