reporting-services - 需要为损益表添加/减去组总计
问题描述
我在 SSRS 中设计了损益表。它有两个行组,科目类型和科目表中的科目构成明细。我遇到的问题是我需要添加和减去一些组总数。
例如,有一组帐户名称为 Sales,下一组是 Returns and Allowances,下一组是 COGS。我需要插入一个汇总 Sales 和 Returns 和 Allowances 组的行。然后我需要在 COGS 组之后插入一行,从 Sales 和 Returns 和 Allowances 总计中减去 COGS。
例如:
Sales
Acct 1
Acct 2
Sales Total
Returns and Allowances
Acct 3
Acct 4
Returns and Allowances Total
Net Sales = Sales Total + Returns and Allowances Total
COGS
Acct 5
Acct 6
COGS Total
Gross Revenue = Net Sales - COGS (or Sales Total + Returns and Allowances Total - COGS Total)
解决方案
如果不了解您的数据是什么样子,很难给出准确的答案,但我会通过向您的数据集中添加一个额外的组来让生活更轻松。您可以在数据集查询中轻松做到这一点。
我创建了一些带有额外外部分组列的示例数据。为了简单起见,我还添加了一个排序列,但您可以按照最适合您的方式对其进行排序。
这是示例数据脚本。
DECLARE @t TABLE(OuterGroup varchar(20), AmountType varchar(20), Account varchar(20), Amount decimal(10,4), SortOrder int)
INSERT INTO @t VALUES
('Net Sales', 'Sales', 'Account 1', 10.1, 1),
('Net Sales', 'Sales', 'Account 2', 15.5, 2),
('Net Sales', 'Returns & Allowances', 'Account 3', 2.6, 3),
('Net Sales', 'Returns & Allowances', 'Account 4', 3.7, 4),
('COGS', 'COGS', 'Account 5', 1.1, 5),
('COGS', 'COGS', 'Account 6', 1.2, 6)
SELECT * FROM @t
我直接在数据集查询中使用了它。如您所见,“外部集团”将允许我们在报告中对此进行分组。
报告设计是一个简单的表格,将总计添加到三组中的每一组。这些组位于 OuterGroup、AmountType 和默认详细信息组上。我给每一个加了一个总数。
这是设计
除了在总字幕表达式中添加一些测试之外,我唯一编辑的是最终的 Gross Rev. 表达式
表达式是
=Sum(Fields!Amount.Value * IIF(Fields!AmountType.Value="COGS", -1, 1))
我们实际上在这里所做的只是将所有金额相加,但首先将 COGS 金额乘以-1
使其为负数。
这给出了以下结果
如果您移动了总转速,则可以删除第一列(但不是组!)。显然是下一栏的标题...
推荐阅读
- reactjs - 控制台中未提示创建 Firestore 索引链接
- react-native - 获取用户的 Dropbox 访问令牌时出错
- python - python检查生成器是否为空的最佳方法
- java - 线程“主”javax.crypto.AEADBadTagException 中的异常:标记不匹配
- amazon-cognito - AWS Cognito OIDC 提供商 PKCE
- openstack - openstack ERROR oslo_db.sqlalchemy.engines [-] 发现数据库连接已断开
- r - 气泡图未显示元包 R 中的所有点
- javascript - Django javascript-catalog 缺少 .po 文件中的数据
- spring - 无法获得 JDBC 连接;嵌套异常是 com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user
- azure - 如何在 Azure Sentinel 中获取 OfficeActivity 架构的文件哈希?