古い参照番号と新しいものを一致させて上書きするSQLを作成しました。参照番号の一括更新、コードから0レコードを返す
これは、誤った参照番号を持つサプライヤから3000件以上の請求書を受け取ったためです。彼らは私に正しいものをExcelファイルで提供しました。
DBに新しいテーブルを作成し、新しい参照のデータをロードしました。私は次に、以下を実行しています。
私はテストデータを含むUAT環境でこれを最初に実行しましたが、コードはまさに私が望むものでした。私は以下を実行する場合でも、私は以下0
のリターンを得続ける私は
UPDATE a
SET a.Refr1 = b.RefNEW
FROM ESB_EDI_HEADERS AS a
INNER JOIN Musgrave_EDI AS b ON a.Refr1 = b.RefOLD
コンテキスト使っているコードです:
ESB_EDI_HEADERS
表はすべて私たちの請求書が含まれています。これは、請求書に誤った参照番号を受け取った場所です。
Musgrave_EDI
は、Excelファイルからデータをインポートした新しいテーブルです。
私は、私が以下の回答を返さないときに実行したときにインポートしたデータに問題があると思います。
SELECT Refr1
FROM ESB_EDI_Headers
INTERSECT
SELECT RefOLD
FROM Musgrave_EDI
ここでは、既存の参照が一致する場所を確認しようとしていますが、ここでも結果は得られません。
このプラットフォームで問題のデータをどのように共有できるかわかりませんが、私はそれがデータの問題だと感じています。
以下はテーブルからデータ
をMusgrave_EDI がTOP 10 *
RefOLD RefNEW C2300008338 0 C2300008339 0 C2300008340 0 C2300027652 0 C2300027653 0 C2300027656 0 C2300005878 7439 C2300004652 8172 C2300004653 8752 C2300004654 9385
Musgrave_EDI FROM ESB_EDI_HEADERS SELECT TOP 10サイトコード、 サプライヤー、 trdateは、 を選択いくつかの例でありますRefr1, Refr2':00:2016年5月1日00 00.000' DateImported> = ESB_EDI_HEaders FROM
Sitecode Supplier TrDate Refr1 Refr2
5017 000011 2016-04-28 00:00:00.000 8228378422 E02591436
5057 000011 2016-04-28 00:00:00.000 E02591454
5012 000011 2016-04-25 00:00:00.000 78316997 E02591989
5012 000011 2016-04-27 00:00:00.000 78344448 E02591990
5012 000011 2016-04-29 00:00:00.000 78367685 E02591991
5011 000011 2016-04-25 00:00:00.000 78314138 E02591992
5011 000011 2016-04-28 00:00:00.000 78352647 E02591993
5011 000011 2016-04-30 00:00:00.000 78376810 E02591994
5013 000011 2016-04-25 00:00:00.000 78316973 E02592104
5013 000011 2016-04-27 00:00:00.000 78343940 E02592105
んa.Refr1とb.RefOLDが同じデータ型を持つ
下のコードを使用してこの問題を解決し、あなたがこれを試すことができます。 \t ESB_EDI_HEADERS.Refr1 = b.RefOLD – NEER
はこれを試しましたし、また – Daniel
あなたは2つのテーブルのためのいくつかの値を追加することができますが返さ0レコードを受け B AS Musgrave_EDI FROM UPDATE ESB_EDI_HEADERS SET Refr1 = b.RefNEW ? – NEER