IDに基づいて、一致しないレコードをチェックする必要がある約15のテーブルがあります。ですから、例えば、私は連絡先情報を一つのテーブルを持っている:SQLのレコードを動的に比較する
TransID FirstName LastName Phone Extn
80071 Michael Kriegel 888-555-6265 1111
80071 Pam Morrow 888-555-9999 2222
80071 Barbara Smith 888-555-7770 3333
80071 Yessika Zurita 888-555-6622 4444
80072 Pam Morrow 888-555-9999 2222
80072 Barbara Smith 888-555-7777 3333
80072 Yessika Zurita 888-555-9954 4444
80072 Michael Kriegel 888-555-6265 1122
私たちは、そのEXTN 2 TransIDsの間で異なっているマイケル・Kriegelを持っている、と我々はバーバラ・スミスとその電話番号が異なっているZurita Yesskiaを持っています。
私がする必要があるのは、どのレコードが異なっているかを示し、どのフィールドが異なるかを示す方法です。しかし、私は15種類の比較をハードコーディングしたくないので、一般的なので、これを書く必要もあります。
私は私の出力はこのように見えるように取得したいのですが:
Name Field TransID_80071 TransID_80072
Michael Kriegel Extn 1111 1122
Barbara Smith Phone 888-555-7770 888-555-7777
Zurita Yessika Phone 888-555-6622 888-555-9954
私はアンピボットいじりんだけど、私はそこに着くことができません。私はこのコードを持っている:だから、私は右のレコードを引っ張ってる
TransID Value FieldName
80071 FirstName Barbara
80071 LastName Smith
80071 Phone 888-555-7770
80071 Extn 3333
80072 FirstName Barbara
80072 LastName Smith
80072 Phone 888-555-7777
80072 Extn 3333
80071 FirstName Michael
80071 LastName Kriegel
80071 Phone 888-555-6265
80071 Extn 1111
80072 FirstName Michael
80072 LastName Kriegel
80072 Phone 888-555-6265
80072 Extn 1122
80071 FirstName Yessika
80071 LastName Zurita
80071 Phone 888-555-6622
80071 Extn 4444
80072 FirstName Yessika
80072 LastName Zurita
80072 Phone 888-555-9954
80072 Extn 4444
が、私はにそれを取得する方法を見つけ出すことはできません。
SELECT TransID , Value , FieldName
FROM
(SELECT Max(TransID) as TransID, Convert(VarChar(250),FirstName) as FirstName,
Convert(VarChar(250),LastName) as LastName,
Convert(VarChar(250),Phone) as Phone, Convert(VarChar(250),CoExtn) as CoExtn
FROM tblSQLContacts
WHERE TransID IN ('80071', '80072')
GROUP BY FirstName, LastName, Phone, CoExtn
HAVING count(*) < 2
) p
UNPIVOT
(FieldName FOR Value IN
(FirstName, LastName, Phone, CoExtn)
)AS unpvt
は、これは私の結果を与えます誰かが私をフィニッシュラインに乗せることができますか?
first_nameとlast_nameも変更できますか? –
それは問題の一部です。 ** **フィールドは変更可能です。理論的には、姓や名字が変更されても、私はそれらを現実的に比較することはできません。議論のために、決して変わらないと言いましょう。しかし、テーブルあたり約40個程度のフィールドがあることを覚えておいてください。上に投稿したものは単なるデータのスニペットです。 –
これらの2つのTransIDにのみ興味がありますか? –