2016-11-03 4 views
0

Я использую SSRS 2008 R2 и создаю отчет с построителем отчетов 3.0. Мне нужно запросить 2 базы данных, центральный в штаб-квартире и спутниковый в Австралии. У них обоих есть таблица под названием Buyers. Сателлитный сайт просто содержит меньший набор данных, который мы вернем в центр позже. У них есть следующие поля; idBuyer, IdCustomer, DateRegistered Прямо сейчас я хочу запросить все записи на сайте Satellite для клиентов (idCustomer), которые еще не находятся в одной таблице в центральном источнике данных. Я использую LookUp, используя idBuyer, чтобы присоединиться к наборам данных в Tablix. Теперь я просто хочу, чтобы отфильтровать результаты, где idCustomer от спутникового набора данных не находится в Центральном DatasetМножество наборов данных SSRS: как отображать только записи, которые не входят в оба набора данных

Любые указатели будут оценены, как я полагаю, это будет довольно простой, но я не получаю, чтобы работать

ответ

0

В идеале вы должны сделать это в SQL. Это сделает отчет намного быстрее.

SELCT ID FROM SATELLITE WHERE ID NOT IN (SELECT ID FROM CENTRAL) 

Однако, это не всегда возможно, так что вы можете выбирать спутниковый дб, где ID не находится в ЦЕНТРАЛЬНОГО ID с помощью ИНГ Funtion Instr.

Для вашего фильтра, установите Expression к idBuyer

=IIF(INSTR("|" & Fields!idBuyer.Value & "|", "|" & JOIN(LookupSet(1, 1, Fields!idBuyer.Value, "CENTRAL"), "|") & "|"), 0, 1) 

Это создаст строку идентификаторов из ЦЕНТРАЛЬНОГО дб и посмотреть, если идентификатор из Sattelite БД находится в нем. Если идентификатор находится в центральной БД, строка получает 0 еще 1. Затем установите значение 1.

enter image description here

The Трубы (|) используется для разделения значений, так что Безразлично» t найдите 25, если в списке указано 125 или 251.

Смежные вопросы