【问题标题】:Microsoft SSRS 2016 Lookup (on dynamic dataset) and return multiple (n) columnsMicrosoft SSRS 2016 查找(在动态数据集上)并返回多个 (n) 列
【发布时间】:2017-08-26 06:14:16
【问题描述】:

我有一个独特的 Microsoft SSRS (2016) 情况:

我在下面有这张表:

表 A(3 列;关键列:OrderID)主表,主数据集 - 固定数据集:

OrderID Region  Store
124     FL      ORL-23
125     CA      SFO-21
126     TX      DAL-19

我在另一个数据集(比如查找数据集)中有另一个表,表 B(4 列;关键列:OrderID):

OrderID Gratuity    DeliveryFee Surcharge
124     $2.50       $3.00       $0.75
125     $3.50       $5.50       $0.67
126     $4.75       $3.75       $0.45

表B(查找数据集)实际上是一个动态表;除了基本列 OrderID 之外,它可以有 3 列(如上所示);在其他一些情况下(通过参数),它可以有 4 列(除了 OrderID),依此类推 - 比如说,n 列除了 OrderID,其中 n 取决于我选择的参数值。

我需要得到以下 结果集表 C 有 6 列(在这种特殊情况下,当表 B 有 3 个动态列时)),在 OrderID 上查找列):

OrderID Region  Store   Gratuity    DeliveryFee Surcharge
124     FL      ORL-23  $2.50       $3.00       $0.75
125     CA      SFO-21  $3.50       $5.50       $0.67
126     TX      DAL-19  $4.75       $3.75       $0.45

表 A:固定 3 列; 表 B:n 个不同的列

我需要在 SSRS 2016 中获取表 C;我有诸如 Lookup、LookupSet、MultiLookup 等选项。

请记住,表 C 必须有 3 个(或 n,其中 n 是动态数据集表 B 中的列数)列(小费、交付费、附加费),不是 1 列以这种方式连接:

Fields!Gratuity.Value & ", " & Fields!DeliveryFee.Value & ", " &  Fields!Surcharge.Value

因此表 C 可以有 6 列,7 列,...即(3+n) 列,因为表 B 具有不同数量的列,具体取决于所选参数。

我怎样才能做到这一点?还是我应该尝试一些选项,例如 SubReport 之类的?

由于某些业务逻辑,我不能使用 JOIN;表 A- 这里我已经简化了(实际上表 A 有更多列,其中包含很多计算,例如 SUM、DISTINCT COUNT 等)。它有一些聚合计算。

【问题讨论】:

  • 这似乎是一个非常直接的查询添加。也许您可以将第二个数据集(表 B)中的查询添加到您的第一个数据集(表 A)和 OrderID 上的JOIN
  • 如果你不能JOIN查询中的表,你不能为每个值使用单独的LOOKUP(小费,交付,附加费)? =Lookup(Fields!OrderID.Value, Fields!OrderID.Value, Fields!Gratuity.Value, "TableB")
  • 或者您可以将数据集加入 xsd 文件中。
  • 添加了一些额外的 cmets ;请立即查看
  • 请阅读Under what circumstances may I add “urgent” or other similar phrases to my question, in order to obtain faster answers? - 总结是这不是解决志愿者的理想方式,并且可能会适得其反。请不要将此添加到您的问题中。

标签: sql-server tsql reporting-services ssrs-2012 lookup


【解决方案1】:

这可以在您的查询中完成,因此它是 SSRS 中的一个数据集。

SELECT
    a.OrderID
    ,a.Region
    ,a.Store
    ,b.Gratuity
    ,b.DeliveryFee
    ,b.Surcharge
FROM TableA A
JOIN TableB B ON
    a.OrderID = b.OrderID

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多