2 つの選択プロセスをマージすると予期しない結果が生じる
問題またはエラー: マージ・プロセスの「AND 条件で選択」オプションを使用して 2 つの選択プロセスをマージすると、等価な単一の選択プロセスとは異なる結果が得られます。
解決方法: この動作は正常であり、データが正規化されていないときに発生することがあります。
正規化されていないデータに対して「AND 条件で選択」を使用して 2 つの別個の選択プロセスをマージすることは、「条件を指定して ID を選択」オプションで 2 つの基準を使用して単一の選択プロセスを実行することとは異なる意味を持ちます。ビジネス・ケースで望ましい動作が行われるように、適切なフローチャート実装を使用してください。
以下のイメージは、正規化されていないデータが原因でこの動作が発生する仕組みを示しています。
最初の例は、「条件を指定して ID を選択」オプションで 2 つの基準を使用した単一の選択プロセスを、正規化されていないデータに対して実行する場合を示しています。ある行のデータが結果に含まれるためには、そのデータがすべての条件を満たしている必要があります。この選択プロセスは、「同じアカウントについて Phone_OptInMail_OptIn の両方が Y になっている固有の顧客 ID のリストを返す」ことを指示しています。
次の例は、ID のリストを検索するための別の選択プロセスでそれぞれの条件を別個に指定して実行し、「AND 条件で選択」オプションが指定されたマージ・プロセスを使用してそれらの ID をマージした場合の結果を示しています。この結果は、類似の単一選択プロセスの結果とは異なります。各 ID は個別の条件 (それぞれの条件は別個の選択プロセスで実装されています) を満たす必要がありますが、それらの条件が必ずしも同じ行のデータで満たされるとは限らないからです。
これらの 2 つの選択プロセスは、「該当の顧客に関する少なくとも 1 つのアカウントで Phone_OptInY になっている固有の顧客 ID のリストを返し、該当の顧客に関する少なくとも 1 つのアカウントで Mail_OptInY になっている固有の顧客 ID の 2 番目のリストを返す」ことを指示しています。次に、マージ・プロセスが 2 つの結果セットの共通部分を求めます。これは、「両方の選択結果セットに表示された顧客 ID のリストを返す」ことを指示していて、最初の例で説明した単一の選択における「条件を指定して ID を選択」条件と同じではありません。