ID_Numberとバージョンの両方の列を持つ2つのテーブルがあります。ただし、ID_numberの形式は異なります。私の目標は、2つのテーブルを比較し、ID_numberが同じで異なるバージョンの行を出力することです。2つのテーブルと一時的な列名を持つ1つのテーブルを比較する方法
例:最初のテーブルのID番号は "23-4567"です。 2番目のテーブルの対応するID番号は「1023004567」です。 "23"の前に "10"が追加され、 " - "が "00"に置き換えられます。すべてのIDで同じです。
最初に、table1のID_Numberをtable2のID_Numberと一致させ、この新しい列の名前をnewIDNumber(table1)に変更し、newIDNumber(table1)とID_Number(table2)を比較しました。上記の例のために表1にID_NUMBERを変換するためのコードが
Eg. '10' + SUBSTRING(@ID_number, 1, 2) + '00' + SUBSTRING(@ID_number, 4,4) AS newIDNumber
は、今私は、バージョンの違いそれはというエラーを出力
SELECT ID_Number, version, "10" + SUBSTRING(@ID_number, 1, 2) + "00" + SUBSTRING(@ID_number, 4,4) (From first table) AS newIDNumber
FROM table1
WHERE (NOT EXISTS
(SELECT ID_Number, version
FROM table2
WHERE (table1.newIDNumber= table2.ID_Number) AND (table1.version = table2.version)
)
)
を確認するには、次のコードを記述、などである「不明な列「TABLE1 .newIDNumber 'in' where句 ''を指定します。どのようにしてデータベースを中断することなく比較できますか?(newIDNumber列をtable1に挿入する)
"newIDNumberを宣言しますか?"
、これを試してください(T1.ID_Number、1、2)+ '00' + SUBSTRING(ID番号、4、4)テーブルT1からのT1へのリターンJOINテーブル2 AS T2 ON T2.version = T1.version AND T2.ID_Number = '10' T1.ID_Number、4、4)WHERE T2.ID_NumberはNULLです。 'not '句をそのまま使用したい場合は'(table1.newIDNumber = table2.ID_Number) 'を'('10' + substring(table1.ID_Number、1,2)+ '00' + substring (table1.ID_Number、4、4)= table2.ID_Number) ' – ZLK
エラーを取得するために、newidnumberがoutterクエリで定義され、内部クエリでは定義されていません。 – user1327961