【发布时间】:2022-07-14 22:28:03
【问题描述】:
我有 2 个数据集需要填充一个表。数据集 1 包含数据集 2 可能不包含的值。数据集 2 包含我需要获取总和的多个值。数据集 2 将始终具有包含在数据集 1 中的匹配值 (Division_Code)。
我需要 DataSet1 中的完整数据列表,即使 Dataset2 中不存在数据。
数据集 1 字段: Division_Code, 长名
数据集 2 字段: Division_Code, 总计费, 日期
即数据集 1:
| Division_Code | Long_Name |
|---|---|
| 01 | Health |
| 02 | Safety |
| 03 | Finance |
| 04 | Tax |
即数据集 2:
| Division_Code | TotalBillable | Date |
|---|---|---|
| 01 | $200 | 06/01/2022 |
| 01 | $100 | 06/08/2022 |
| 01 | $200 | 06/12/2022 |
| 02 | $800 | 06/01/2022 |
| 04 | $100 | 06/05/2022 |
我需要这样的结果:
| Division_Code | Long_Name | Sum(TotalBillable) |
|---|---|---|
| 01 | Health | $500 |
| 02 | Safety | $800 |
| 03 | Finance | 0 |
| 04 | Tax | $100 |
我尝试了各种查找和 SumLookup 表达式,但都导致错误。任何人都可以提供有关如何编写可以完成我需要的表达式的指导吗?提前致谢。
【问题讨论】:
-
假设您不能直接在数据集查询中执行此操作(迄今为止最简单的方法),请查看此博客文章 salvoz.com/posts/…
-
如果您使用像 stackoverflow.com/questions/36131860/… 这样的 SumLookup,您的表达式将是
=Code.SumLookup(LookupSet(Fields!Division_Code.Value, Fields!Division_Code.Value, Fields!TotalBillable.Value,"Dataset2"))。您的 TotalBillable 不是带有美元符号的文本字段,是吗? -
@AlanSchofield 我还没有找到直接在我的数据集中执行此操作的方法,因为 dataset2 不包含 Division_code 字段的完整列表,因为并非所有 Division_code 都有计费金额。无论我们的帐单表中是否存在数据,我都需要完整的 Division_code 列表
-
@HannoverFist 这是我最初尝试的。 TotalBillable 是一个没有美元符号的 INT 字段(我将按这种方式格式化单元格)。但是,当我使用此表达式时,TotalBillable 字段出现错误“报表项表达式只能引用当前数据集范围内的字段,或者,如果在聚合内,则为指定的数据集范围”
-
该错误似乎表明字段或数据集名称不正确。你确定它们都是正确的吗?
标签: reporting-services reportbuilder