我正在尝试向使用不同数据集的tablix添加一列。现在 dataset1 包含新数据, dataset2 包含旧的比较数据。
Tablix正在使用 dataset1 ,有问题的行按D_ID分组,现在我添加了一个需要与D_ID(dataset1)绑定到D_ID(dataset2)的列
=-1*sum(Lookup(Fields!D_ID.Value, Fields!D_ID.Value, Fields!BUD_OLD.Value, "OLD")+Lookup(Fields!D_ID.Value, Fields!D_ID.Value, Fields!ACK_BUD_OLD.Value, "OLD"))
但是,考虑到我需要的是BUD_OLD中的所有行,D_ID = smth要汇总在一起。查找仅返回一个值,而不是具有D_ID的所有值的总和。
实施例
D_ID SUM(BUD_NEW+ACK_BUD_NEW) SUM(BUD_OLD+ACK_BUD_OLD)
**100** **75** (40+35) **15**(SHOULD BE 15+20=35)
我怎样才能得到这笔钱?
感谢您的帮助!
答案 0 :(得分:1)
LOOKUP 只获得一个值。
您需要使用LOOKUPSET和一个特殊功能来 SUM 结果。
幸运的是,这已经完成了。
SSRS Groups, Aggregated Group after detailed ones
来自BIDS:
LOOKUP :使用Lookup从指定数据集中检索存在1对1关系的名称 - 值对的值。 例如,对于表中的ID字段,可以使用Lookup 从未绑定的数据集中检索相应的名称字段 到数据区域。
<强> LOOKUPSET 强>:使用LookupSet为检索一组从一个名称 - 值对所述特定数据组的值强>的地方有一个1对多 关系。例如,对于表中的客户标识符,您 可以使用LookupSet检索所有相关电话号码 该客户来自未绑定到数据区域的数据集。
答案 1 :(得分:0)
你的表达需要第二个“总和”
尝试以下方法:
-1 * sum(Lookup(Fields!D_ID.Value,Fields!D_ID.Value,Fields!BUD_OLD.Value,“OLD”)+ SUM(Lookup(Fields!D_ID.Value,Fields!D_ID.Value,Fields !ACK_BUD_OLD.Value,“OLD”)