私はちょっとした助けを気にしないトリッキーな問題を抱えています。私はここや他の場所で持っているクエリを使用していくつかの進歩を遂げましたが、今は真剣に困惑しています.
私は、このようなデータを取得して、1 つの意味のある行に結合しようとしているほぼ重複する多数のメーリング リストを持っています。
Title Forename Surname Address1 Postcode Phone Age Income Ownership Gas
Mrs D Andrews 122 Somewhere BH10 123456 66-70 Homeowner
Ms Diane Andrews 122 Somewhere BH10 123456 £25-40 EDF
の線に沿って一列を作ります
Title Forename Surname Address1 Postcode Phone Age Income Ownership Gas
Mrs Diane Andrews 122 Somewhere BH10 123456 66-70 £25-40 Homeowner EDF
私は 1 億 2,700 万件を超えるレコードを所有しており、ほとんどが同様のパターンで複製されていますが、ID フィールドを追加したときに証明されたような明確なロジックはありません。また、検討する列が 90 を超えているため、少し手間がかかります。データには明確なパターンがないので、乗り越えようとする巨大なケースステートメントがあるのではないかと考えています。
次のコードを使用すると、完全な名前のみを返すことでまともなスタートを切ることができますが、データのパターンを使用すると、行間でフィールドを比較しようとすると次のようになります。
SELECT c1.*
FROM
Mailing c1
JOIN
Mailingc2 ON c1.Telephone1 = c2.Telephone1 AND c1.surname = c2.surname
WHERE
len(c1.Forename) > len(c2.Forename)
AND c2.over_18 <> ''
AND c1.Telephone1 = '123456'
私がどのように進歩すべきかについて誰かが何か指針を持っていますか? 私は議論やアイデアにオープンです...
私は SQL 2005 を使用しています。タグ付けがいたるところにある場合は、事前に謝罪してください。
乾杯、
ジョン