sql-server - 报表生成器多组矩阵计算
问题描述
我在 Report Builder 3.0(2014) 中使用矩阵向导创建了一个矩阵,具有 2 个行组、1 个列组和 2 个值。创建矩阵(包括总计和小计)后,我有一个看起来不错的矩阵。但是现在我想为每个列组(一行)再添加一个单元格,以存储以下值。
值 = 第 1 行组的总数 + 第 2 行组的总数 - 第 3 行组的总数 ...
构建的矩阵只显示了我不需要的每个行组的小计。
我想问我如何检索由矩阵本身计算的总数的结果,以及如何使用表达式根据它们的行组值来识别它们?而且,我如何为每个具有不同数据的列组执行此操作?
我试图在矩阵的设计视图中查看表达式,它只显示矩阵中每个单元格的 [SUM(MyField)](总计和小计)。
或者我应该使用另一个查询在另一个数据集上执行它吗?如果是这样,我应该使用什么查询以及如何将两个数据集放入一个矩阵中?
我的矩阵看起来像这样:
Column Group
ROW GROUP 1 | ROW GROUP 2 | VALUE 1 | VALUE 2
Row Group 1 | Row Group 2 | [Sum(MyField)] | [Sum(MyField)]
| TOTAL OF ROW GROUP 1 | [Value] | [Value]
| ROW PLAN TO ADD | [Value(0)+Value | [Value(0)+Value
| (1)-Value(2)] | (1)-Value(2)]
大写:列名,常量
[sqrbrkted]:计算值
正常:表内的数据
我是报表生成器的新手,如果我犯了任何错误,请见谅。如果我没有说清楚,请发表评论并让我知道。先感谢您。
编辑:我在下面的答案部分想出了一种方法来实现我的目的。如果有人有其他解决方案,请随时回答。谢谢。
解决方案
我通过更改我的 SQL 查询以创建另一个虚拟列来解决此问题,如果其各自的行组旨在扣除小计 (Value(2)),则显示负结果,并将其放在矩阵中。在表达式内部,我有另一个 IIF 语句将其转换回正数以用于显示目的。
SQL:
SELECT *, (CASE WHEN COL_B = 'VAL_2' THEN -COL_A ELSE COL_A END)AS DMY_COL_A FROM TABLE
表达:
=IIF(Sum(Fields!DMY_COL_A.Value)<0,-Sum(Fields!DMY_COL_A.Value),Sum(Fields!DMY_COL_A.Value))
推荐阅读
- python - 使用路径数组显示图像对
- java - 为什么 Eclipse 会生成“无法找到/解析工件。(org.apache.maven.plugins:maven-dependency-plugin:3.0.2:unpack:unpack:package)”错误?
- r - 在列列表中搜索 R 中的一组值
- nginx - 在 kubernetes 集群内使用 nginx 反向代理组织 .net 核心应用程序的最佳方法是什么?
- django - 为 django-allauth 设置正确端口的重定向 URL
- c# - 仅授权 ASP.NET Core 中的某些 Http 方法
- r - 安装单元 R 包时未找到 udunits2.h
- android - 隐藏子屏幕/片段的android底部导航视图
- javascript - 根据选择框选择定义隐藏字段值
- swift - Swift 闭包和错误处理