ここに私がいる状況があります。私は人々の情報を含むテーブルを持っています。一部は別のシステムからインポートされ、一部は手動でインポートされます。私がやってみたいのは、みんなを引っ張ることですが、手動で入力したレコードとインポートされたレコードがある場合は、インポートされたレコードのみを選択します(最新の可能性が高いため)。 (それだけで手動で入力されたレコードを返します)。ここSQL Server EXCEPT
は、私がこれまで持っているものですが、動作していないよう:
SELECT --fields go here
FROM
(
SELECT PERSON_UID, instype
FROM AdmitsInterfaceTable
WHERE instype='M' --Manually entered people
EXCEPT
SELECT PERSON_UID, instype
FROM AdmitsInterfaceTable
WHERE instype='I' --Imported people
) P,
AdmitsInterfaceTable A
WHERE
P.PERSON_UID=A.PERSON_UID
AND P.instype=A.instype
私はこれが原因で、内部の動作していない気がしますまた、instype列を引き出すクエリーもありますが、これを行うためのより良い方法は考えられません。何かアドバイス?
レコードが手動で追加された、もう1つは、インポートから追加された場合、最初に、彼らは同じperson_uidを持っているでしょうか?もしそうであれば、インポートでレコードを追加するのではなく、なぜ更新していないのですか?なぜあなたは意図的に重複を作成していますか? また、ANSI標準結合を使用して開始してください。あなたの結合構文は17年古いです。 – HLGEM
データは実際には他の場所で永続的に保持されます。ベンダーシステムにアクセスして、どのレコードを更新および/または挿入する必要があるかを判断できる、一時的なステージングポイントとしてテーブルに入れるだけです。ええ、私はステージングエリアのレコードを更新できますが、取り込んだすべてのレコードを毎晩削除してから再度プルするのは簡単です。手動でレコードを入力することはほとんどありませんが、慎重に処理しなければ問題が発生することがあります。 –
提案されている解決策はどれですか? –