所以我有一个非常简单的视图,看起来像这样:
Location Month DelRec Warehouse_Number Code Value
Canada November Deliveries Warehouse1 C 11041.2
Canada November Deliveries Warehouse 2 C 0
Canada November Receipts Warehouse 3 C 0
USA November Receipts Warehouse_10 H 2543.2
最终,我想要创建的是SSRS中的矩阵,它使用“代码”作为动态列名,并通过DelRec和Location进行分组(扩展可用于该分组的每个代码的列数)。够容易吧?看起来像这样:
现在我要做的下一步是对这些值进行一些条件求和,这让我受阻。特别是,例如,在下面的数据中,对于加拿大,交货需要一起总结(仓库1和仓库2),然后从收货中减去这两个总额(在这种情况下,只是仓库3)。表面上看,这看起来像这样:
问题是,我无法弄清楚如何进行条件求和(即总和交付并从收据总和中减去它们),特别是涉及动态列时(因为我们不知道仓库数量可能来自何处)在未来的数据中。)
此外,我实际上需要一个具有总交付额和总收据的列,这使我更加困难。
有人知道怎么做吗?结果应如下所示:
我创建了a pastebin 如果有人真的想尝试这样做,可以使用一些有代表性的SQL数据进行插入。
答案 0 :(得分:2)
据我所知,“收据”是信用额度,可以视为正数,“交付”是借方,可以视为负数。要获得正确的总数,您可以使用
替换矩阵右下角的Sum表达式=Sum(IIF(Fields!DelRec.Value="Receipts",Fields!Value.Value,-1 * Fields!Value.Value))
要获得交付和收据的总计行,您需要右键单击矩阵中的Warehouse_Number,然后单击Add Total,然后单击After。
或者,您可以右键单击行组中的Warehouse_Number并从那里添加总计。
矩阵现在看起来应该是这样的
报告现在应该是这样的
右键单击矩阵中的代码然后“添加总计” - > “After”将Row Totals添加为新列。请注意,这将仅按位置“收货”或“交货”,因为报表已分组,然后是DelRec,然后是仓库。您可以通过在矩阵底部添加额外的行来获得收据总计,或者在我看来更好的是另一个仅由DelRec分组来计算DelRec Grand Totals的表。