Microsoft SSRS 2016 Lookup(在动态数据集上)并返回多个(n)列

时间:2017-03-31 21:12:32

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

我有一个独特的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),依此类推 - 比如,除了OrderID 之外的 n列,其中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) new 列(Gratuity,DeliveryFee,附加费),不< / strong>以这种方式连接的1列:

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

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

我怎样才能做到这一点?或者我应该尝试一些选项,如SubReport,还是其他什么?

由于一些业务逻辑,我无法使用JOIN;表A-这里我已经简化了(实际上表A有很多列,有很多计算,如SUM,DISTINCT COUNT等)。它有一些汇总的计算。

1 个答案:

答案 0 :(得分:0)

这可以在您的查询中完成,因此它是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