データセットがあり、相互に参照する結果を見つけようとしています。「アプリケーション」を含むテーブルがあります。アプリケーションには 2 つの関係者 (人) が関与します。これらは「申請者」と「受信者」です。
人「A」が申請者で人「B」が受信者であり、別の申請を逆に転送した場所のデータを取得する方法を見つける必要があります。したがって、人物「B」が申請者で、人物「A」が受信者です。これらの行の両方を結果セットの 1 行として返す必要があります。
私のデータ構造は次のようになります。
Application ID, Applicant Name, Applicant DOB, Receiver Name, Receiver DOB
1, Bob SMITH, 12/06/1980, Joe SMITH, 10/10/1979
2, Joe SMITH, 10/10/1979, Bob SMITH, 12/06/1980
3, Betty DAVIS, 15/05/1986, Barry DAVIS, 29/07/1981
4, Barry DAVIS, 29/07/1981, Betty DAVIS, 15/05/1986
ご覧のとおり、4 つのアプリケーションがありますが、実際には「クロス アプリケーション」は 2 つだけです。ユニークなクロス アプリケーションを示す次のような最終結果を得ようとしています。
Application ID 1, Applicant Name 1, Applicant DOB 1, Receiver Name 1, Receiver DOB 1, Application ID 2, Applicant Name 2, Applicant DOB 2, Receiver Name 2, Receiver DOB 2
1, Bob SMITH, 12/06/1980, Joe SMITH, 10/10/1979, 2, Joe SMITH, 10/10/1979, Bob SMITH, 12/06/1980
3, Betty DAVIS, 15/05/1986, Barry DAVIS, 29/07/1981, 4, Barry DAVIS, 29/07/1981, Betty DAVIS, 15/05/1986
2 つのアプリケーションを比較できるのは、名前と生年月日だけです (これは私に課せられた制約です。名前のつづりが違ったり、生年月日が間違っていたりすることがあるのが面倒です)。両方の人が一致するクロスアプリケーションのみを返したいです。
行「N」をカーソルにロードし、名前とDOBをデータセット内の他のすべての行(N + 1からN + n)と比較し、一致が見つかった場合はそれらを出力に入れる必要があると思いますそして次の行に進みます。どうすればいいのかわからないので、どなたかアドバイスいただけると助かります。ありがとう!