CRM - запрос записей с «несовместимыми» комбинациями значений (SQL, SSRS) - PullRequest
1 голос
/ 20 марта 2019

У меня есть тип записи в моей среде CRM, где есть два поиска.Существуют определенные комбинации значений, которые не являются «допустимыми», но в системе нет ограничений, препятствующих этой записи.Чтобы проиллюстрировать это, я буду использовать небольшую выборку городов и штатов для объяснения.

За пределами CRM у меня есть электронная таблица, чтобы показать, какие комбинации городов и штатов подходят, а какие нет;например, Бостон - это город в Массачусетсе, но не в Миннесоте, Техасе или Висконсине.Арлингтон, однако, является городом во всех четырех штатах и ​​т. Д.:

enter image description here

Проблема в том, что ничто не мешает кому-то поставить "Кембридж" длягород и "TX" для государства, например.Я надеялся как-то использовать данные этой электронной таблицы в качестве входных данных в сочетании с запросом SQL для создания отчета SSRS, в котором были бы показаны записи с несовместимыми комбинациями:

SELECT name, city, state
FROM contacts
WHERE [magic for the query to know there's no Cambridge in Texas, etc.]

Я мог бы пройти и определить каждую комбинацию какдопустимо или нет в самом запросе, но что-то подсказывает мне, что есть более эффективный способ сделать это вместо определения нескольких сотен возможных комбинаций, которые у меня есть.

Я работаю над настройкой полей, поэтому допустимая записьпринудительно, но мне нужно идентифицировать и очистить существующие записи.

Ответы [ 2 ]

2 голосов
/ 20 марта 2019

Вам понадобится таблица допустимых комбинаций.Если у вас его еще нет, вам нужно его создать.Самая простая форма будет выглядеть примерно так:

CREATE TABLE CityState(City varchar(50), State varchar(2))

INSERT INTO CityState VALUES
('Boston', 'MA'),
('Arlington', 'MN'),
('Arlington', 'MA'),
('Arlington', 'TX'),
('Arlington', 'WI')

и т. Д.

1 голос
/ 20 марта 2019

Вы можете создать справочную таблицу с именами полей, города и штата. Заполните соответственно где они пересекают ref как "Y" В итоге вы получите таблицу с 19 строками данных.

Используйте эту таблицу в своем основном наборе данных, связывая названия городов и измените свой запрос, например: ВЫБЕРИТЕ имя, город, штат Из контактов внутреннее соединение reference_table на contacts.city = reference_table.city

...