如何让LookupSet多行显示结果

问题描述 投票:0回答:1

我有2个数据集

第一个查找 contactID、ContactMethod 和 Name(数据集 1)

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

第二次查找 contactID、送货情况和送货状态

          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 次......

reporting-services reportbuilder3.0
1个回答
3
投票

您可以在连接功能中使用

Environment.NewLine

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

如果您需要显示 tablix/matrix 行中的每个值,您将必须修改数据集查询。

另请注意,您可以跨不同数据库(甚至在不同服务器中)执行查询。

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

取自这里

尽管您可能会遇到两台服务器之间的排序规则问题,但这是获得预期结果的唯一方法。无法从 SSRS 表达式生成行。

© www.soinside.com 2019 - 2024. All rights reserved.