0

我正在报表生成器中构建报表。我有 2 个数据集,由于它们的复杂性,它们无法合并。我想做的是制作一个报告,它使用第一个数据集中的 ID 来查找第二个数据集中的数据。这可能吗?以下是示例,不是确切的代码,而是我需要的:

第一个数据集:

select itemID from Items

第二个数据集:

select itemID, saleAmount, salePrice from Sales

我想这样设置我的报告:

ItemID        | Sale Count                                                  | Sale Price 
--------------+-------------------------------------------------------------+------------
Items.itemID  | sum(Sales.saleAmount) where items.itemID = Sales.itemID     | sum(Sales.salePrice ) where items.itemID = Sales.itemID

所以最终的结果会是这样的:

ItemID        | Sale Count                                                  | Sale Price 
--------------+-------------------------------------------------------------+------------
1             | 11223                                                       | $123123
2             | 4537                                                        | $8375

这可能吗?也许有条件查找?

4

1 回答 1

1

很遗憾,您在创建数据集时无法加入数据。

如果做不到这一点,我可以想到其他几个选择:

使用 LookupSet 和自定义代码

这个出色的答案如何将组内的聚合与 SSRS 内的跨组的聚合结合起来是一个很好的例子,说明了如何做到这一点。

基本上,您在SumLookup接受 LookupSet 调用结果并返回聚合值的函数(例如)中添加自定义代码。您的报告中会出现如下表达式:

=Code.SumLookup(
    LookupSet(Fields!itemID.Value, Fields!itemID.Value, Fields!saleAmount.Value, "Sales")
)

我创建了一个快速测试,它运行良好。

使用子报表

为此,您将基于Items数据集创建表,然后在详细信息行中嵌入子报表以显示销售信息。

子报表需要一个itemID参数来适当地过滤销售,您可以设置父表以传递=Fields!itemID.Value给子报表 - 然后这将对每一itemID行重复并显示相关的销售数据。

对于它的价值,我会看第一个选项 - 有一些自定义代码,但它很简单,这样您就不需要部署多个报告。对我来说似乎更干净。

于 2013-04-29T16:54:37.393 回答