Объединение двух процессов Выбрать приводит к неожиданным результатам
Проблема или ошибка: Если два процесса Выбрать объединяются с использованием опции процесса объединения Сопоставление (И) при включении, результаты будут не такими, как результаты эквивалентного одного процесса Выбрать.
Решение: Это поведение правильное, и может использоваться, если данные не нормализованы.
Работая с ненормализованными данными, объединение с опцией Сопоставление (И) при включении двух отдельных процессов Выбрать - это не то же самое, что одиночный процесс Выбрать, с использованием двух критериев в опции Выбрать ID с. Используйте соответствующую реализацию потоковой диаграммы, чтобы получить нужное поведение потоковой диаграммы в бизнес-ситуации.
Ниже приведены изображения, которые иллюстрируют, как ненормализованные данные приводят к такому поведению.
В первом примере показано, как один процесс Выбрать с двумя критериями в опции Выбрать ID с работает с ненормализованными данными. Строка данных должна удовлетворять всем условиям, которые будут в результатах. Значение данной опции Выбрать - "Возвратить вписок уникальных ID покупателя с Phone_OptIn и Mail_OptIn со значением Y для одного и того же счета".
В следующем примере показано, что происходит, если для получения списков ID каждое условие будет работать отдельно в разных процессах Выбрать, и эти ID будут объединены с использованием опции Сопоставление (И) при включении процесса объединения. Результаты могут отличаться от сопоставимого одного процесса Выбрать, так как, хотя каждый ID и должен соответствовать независимым условиям (каждое условие, реализуемое в отдельном процессе Выбрать), для этих условий не всегда подойдет одна и та же строка данных.
Значение этих двух процессов Выбрать - "Возвратить список уникальных ID покупателей, в котором хотя бы в одном счете для данного покупателя есть Phone_OptIn со значением Y; возвратить второй список уникальных ID, в котором хотя бы в одном счете для этого покупателя есть Mail_OptIn со значением Y". Далее процесс Объединить выполнит пересечение двух наборов с результатами, что будет означать "Возвратить список ID покупателей, которые появляются в обоих наборах результатов", что отличается от условия Выбрать ID с в одном процессе Выбрать, описанном в первом примере.