需要为损益表添加/减去集团总计
Need to Add / Subtract Group totals for Income Statement
我在 SSRS 中设计了损益表。它有两个行组,科目类型和科目表中的科目构成明细。我遇到的问题是我需要加减一些组总数。
例如,有一组帐户名为 Sales,下一组是 Returns 和 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
我直接在数据集查询中使用了这个。如您所见,'outer gorup' 将允许我们在报告中对此进行分组。
报告设计很简单 table,三个组中的每一个都添加了总计。这些组在 OuterGroup、AmountType 上,然后是默认详细信息组。我给每一个加了总和。
这是设计
除了对总字幕表达式添加一些测试外,我唯一编辑的是最终的 Gross Rev. 表达式
表达式是
=Sum(Fields!Amount.Value * IIF(Fields!AmountType.Value="COGS", -1, 1))
我们实际上在这里所做的只是将 所有 的金额相加,但首先将 COGS 金额乘以 -1
以使它们为负数。
这给出了以下结果
如果您移动了总收入,则可以删除第一列(而不是组!)。显然下一栏的标题...
我在 SSRS 中设计了损益表。它有两个行组,科目类型和科目表中的科目构成明细。我遇到的问题是我需要加减一些组总数。
例如,有一组帐户名为 Sales,下一组是 Returns 和 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
我直接在数据集查询中使用了这个。如您所见,'outer gorup' 将允许我们在报告中对此进行分组。
报告设计很简单 table,三个组中的每一个都添加了总计。这些组在 OuterGroup、AmountType 上,然后是默认详细信息组。我给每一个加了总和。
这是设计
除了对总字幕表达式添加一些测试外,我唯一编辑的是最终的 Gross Rev. 表达式
表达式是
=Sum(Fields!Amount.Value * IIF(Fields!AmountType.Value="COGS", -1, 1))
我们实际上在这里所做的只是将 所有 的金额相加,但首先将 COGS 金额乘以 -1
以使它们为负数。
这给出了以下结果
如果您移动了总收入,则可以删除第一列(而不是组!)。显然下一栏的标题...