【发布时间】:2014-05-22 06:13:20
【问题描述】:
我正在处理现有的 SSRS 报告并遇到以下情况:
- 运行良好并显示来自存储过程的分组数据
- 仅当某个字段中的值为空/null 时,才向某个列(例如 Quantity)的 SUM 值发出请求(Defeted - 具有 NULL 默认值的位字段)
- 例如
产品表
+----+--------------+----------+----------+
| ID | PRODUCTNAME | QUANTITY | DEFECTED |
+----+--------------+----------+----------+
| | | | |
| 1 | Ice Cream | 8 | 1 |
| | | | |
| 2 | Soap | 3 | |
| | | | |
| 3 | Kit Kat | 10 | |
| | | | |
| 4 | Baked Beans | 2 | 0 |
| | | | |
| 5 | Toilet Paper | 2 | |
+----+--------------+----------+----------+
我想要一个表达式来计算 DEFECTED 状态为 NULL/Empty(不是 1 或 0)的 PRODUCTS 的总数
即它应该是以下的总数:
肥皂 + 奇巧 + 卫生纸 = 3 + 10 + 2 = 15
我的尝试是:
Sum(IFF(First(Fields!Defected.Value, "Products_Report_Data_Set_Name") = "",First(Fields!Quantity.Value, "Products_Report_Data_Set_Name"),0))
Products_Report_Data_Set_Name 返回产品列表的位置
它不工作
我可以通过表达式解决它吗?还是我必须添加另一个数据集?
【问题讨论】:
-
如果可能,获取另一列表示 isDefected True/False 值并对该列进行分组以获得缺陷和未缺陷的总和
-
嗨@Naveen。谢谢你的回复,但你没有回答我的问题。即使这是我正在寻找的内容,该场景也包含在 DEFECTED 列中,该列是一个位字段。所以添加另一个 True/False 列将是多余的
-
@NaveenKumar 我意识到命名可能会误导你,所以刚刚编辑并添加了 DEFECTED 是一个位字段。
-
好的,那么我想尝试在你的表达式中使用 ISNothing(Fields!Defected.Value)
-
@NaveenKumar 但在什么时候?你介意输入整个表达式吗?是 Sum(IFF(IsNothing(Fields!Defected.Value, "Products_Report_Data_Set_Name"),First(Fields!Quantity.Value, "Products_Report_Data_Set_Name"),0))
标签: sql-server reporting-services report expression rdl