Reporting services 将SSR中的行合并,只对某些值求和

Reporting services 将SSR中的行合并,只对某些值求和,reporting-services,ssrs-2012,Reporting Services,Ssrs 2012,在SSRS BI 2012中,我做了如下报告。当作业被中断时,例如在周末,报告中会有另一行具有相同版本号。在下面的示例中,它是版本3 如果特定orderNo的版本号相同,是否有方法合并行,然后将Netto和ActualTime相加,而不是Bruto和PlannedTime相加 OrderNo Ver Netto Bruto PlannedTime ActualTime 123456 1 1000 1050 01:50 01:45

在SSRS BI 2012中,我做了如下报告。当作业被中断时,例如在周末,报告中会有另一行具有相同版本号。在下面的示例中,它是版本3

如果特定orderNo的版本号相同,是否有方法合并行,然后将Netto和ActualTime相加,而不是Bruto和PlannedTime相加

OrderNo Ver Netto Bruto PlannedTime ActualTime 123456 1 1000 1050 01:50 01:45 2 1000 1050 01:50 01:45 3 500 1050 01:50 00:30 3 500 1050 01:50 00:45 订单号为Netto Bruto计划时间实际时间 123456 1 1000 1050 01:50 01:45 2 1000 1050 01:50 01:45 3 500 1050 01:50 00:30
3500 1050 01:50 00:45是的,您需要根据版本号设置一个组。然后,对于Netto的列,将ActualTime而不是普通列设置为functions。对于Bruto和计划时间的Sum函数Sum(…),我假设您没有求和,因为它们是相同的?在这种情况下,只需将函数设置为获取第一个值

关于你的问题:

如果特定orderNo的版本号相同,是否有方法合并行,然后将Netto和ActualTime相加,而不是Bruto和PlannedTime相加

OrderNo Ver Netto Bruto PlannedTime ActualTime 123456 1 1000 1050 01:50 01:45 2 1000 1050 01:50 01:45 3 500 1050 01:50 00:30 3 500 1050 01:50 00:45 我认为如果您使用表达式和作用域列总数自定义文本框是可能的。检查

如果您从数据源获取所需的数据,则会更容易。 假设Bruto和PlannedTime列在特定版本中保持相同,您有一个如下表:

您可以使用数据集中的以下查询:

select OrderNo,Ver,Sum(Netto) as Netto
,Max(Bruto) as Bruto, Max(PlannedTime) as PlannedTime,
DATEADD(ms, SUM(DATEDIFF(ms, '00:00:00.000', ActualTime)), '00:00:00.000') as ActualTime
from Interruption
group by OrderNo, Ver
从该数据集中可以使用表组件。将您的时间列格式化为您的重新查询,如下所示

我使用表格组件构建了以下内容:


试一试,我希望这能对您有所帮助。

谢谢您的回答,实际的查询要复杂得多,但我会努力并将其压缩。无论我在哪里看到人们暗示要更好地调整查询,然后操纵报表。