かなり複雑なクエリを実行しようとしています。2つのテーブルが同期していません。処理の1つのステップで、16桁の値が一方のテーブルからもう一方のテーブルにコピーされ、わずか10桁に切り捨てられます。
いくつかの情報を使用して、16桁の数字全体をコピーしています。10桁の値が16桁の値の最初の10桁と一致し、これら2つのテーブルの他の3つの情報が一致する場所を見つけようとしています。組み合わせると、それらは私たちがユニークなエントリーを持っているというほぼ100%の確実性を与えます。これは私のクエリの現在の反復です:
UPDATE DB1.TABLE1
SET ID =
(
SELECT b.ID
FROM DB2.TABLE1 b
INNER DB1.TABLE1 a
ON left(b.ID, 10) = a.ID
WHERE len(a.ID) = 10
AND a.STORE = b.STORE
AND a.DOCTYPE = b.DOCTYPE
AND a.DOCDATE = b.DOCDATE
)
問題は、サブクエリが複数の結果を返していることを示していることです。しかし、私は複数の結果が欲しいです。括弧の後に別のステートメントを追加しWHERE
、サブクエリの最後の4行を複製しようとしましたが、それも機能していません。また、ステートメント全体を使用WHERE EXISTS
して複製しようとしSELECT
ましたが、複数の結果のエラーも発生します。ここで何が欠けていますか?