2017-01-26 13 views
2

у меня есть 2 набора данныхКак сделать отображение результатов LookupSet во многих строках

Первый один смотрит на ContactId, ContactMethod и Имя (DataSet1)

  ContactId | ContactMethod | Name 
      1048 | [email protected] | John Doe 

Второй смотрит на ContactId, поставок и deliveryStatus

  ContactID | deliveries | deliveryStatus 
      1048 | FailedAttempt | Undeliverable 
      1048 | FailedAttempt | Undeliverable 
      1048 | FailedAttempt | Undeliverable 

и повторить, что еще 6 раз ...

Я знаю, Я мог бы сделать один запрос, но эти два набора данных находятся в двух разных базе данных, поэтому я не могу сделать один запрос с 2-мя источниками (насколько мне известно. Я мог бы быть совершенно неправильно)

Так вот моя функция

=Join(LookUpSet(Fields!ContactMethod.Value, 
       Fields!ContactMethod.Value, 
       Fields!CoarseReportingBucketName.Value, 
       "EX_JobDeliveries"), 
      ",") 

Это вернет меня, в одной ячейке :(если вы видите изображение в ссылке, сданным в одной ячейке 9 раз)

Как бы я мог показывать все эти результаты в разных ячейках, если нет другого пути. Использование Lookup возвращает строку, я надеялся, что она автоматически заполнит себя, но это не так.

Так что результат будет выглядеть примерно так (так ступенчатый отчет)

ContactMethod | Name | deliveries | deliveryStatus 
    [email protected]| 
       John Doe | 
         FailedAttempt | Undeliverable 
         FailedAttempt | Undeliverable 
         FailedAttempt | Undeliverable 

и еще 6 раз, что ...

ответ

3

Вы можете использовать Environment.NewLine в функции присоединения:

=Join(LookUpSet(Fields!ContactMethod.Value, 
       Fields!ContactMethod.Value, 
       Fields!CoarseReportingBucketName.Value, 
       "EX_JobDeliveries"), 
      Environment.NewLine) 

Если вам нужно показать каждое значение в строке вашего табликса/матрицы, вам придется изменить запрос набора данных.

Также обратите внимание, что вы можете выполнять запрос в разных базах данных (даже на разных серверах).

SELECT firstdb.*, seconddb.* 
FROM Server1.Database1.dbo.myTable AS firstdb 
INNER JOIN Server2.Database2.dbo.myTable AS seconddb 
    ON firstdb.id = seconddb.id 

ПРИНЯТЫ ОТ HERE

Несмотря на возможно вы сталкиваетесь проблемы с комплектовке между обоими серверами это единственный способ получить ожидаемый результат. Невозможно генерировать строки из выражений SSRS.

Дайте мне знать, если это поможет.

+0

Извините, если это не было ясно, мне нужна новая строка в моем tablix. Я делаю это как ступенчатый отчет. Я мог бы «уйти» с новой строкой, но я бы хотел добавить новую строку. Когда я вытаскиваю «EX_JobDeliveries» в SSMS, запрос возвращает 9 значений, поэтому я надеялся, что выполнение простого Lookup (Expression) вернет 9 значений, подобных регулярному выражению, но мне, кажется, чего-то не хватает. – Pepe

+0

О, для двух запросов к базе данных: хорошо знать. Хотя, не будет ли это создавать проблемы с SSRS, где я должен выбрать источник данных. I.e query server1 и server2, а затем выбрал источник данных server1 – Pepe

+0

@Pepe. Вы можете связать сервер A с сервером B, - проверьте [this] (https://msdn.microsoft.com/en-us/library/ff772782.aspx) - затем просто добавьте источник данных на сервер B, вы можете получить доступ к серверу A. Попробуйте сначала в SSMS, затем, когда ваш запрос работает, просто создайте источник данных и набор данных в построителе отчетов. –

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

  • Нет связанных вопросов^_^