【发布时间】: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