【问题标题】:Running total on calculated column in SQL Server在 SQL Server 中的计算列上运行总计
【发布时间】:2021-12-20 08:09:05
【问题描述】:

我正在使用 SQL 代码获取重复的列的运行总计,在下面的屏幕截图中,计算了列 WeightedBilled,我在组级别的报告中使用它作为 MAX(WeightedColumn)

现在我想添加一列,添加 WeightedBilled 的值,然后只选取该列的一个值。

当我使用 over partition by 子句时,它会添加所有重复值。

我的代码是:

SUM( WeightedBilled) OVER (PARTITION BY(CheckProjID), rpt_tEmployeeName) AS EmpLevelWeightedBill`,

在 SSRS 2005 报告方面:深色背景是我想要的值总和。

Employee     $2000 (this is what I need here)

Project 1     $500 (displayed as max(weightedBilled))
Project 2     $600 (displayed as max(weightedBilled))
Project 3     $700 (displayed as max(weightedBilled))
Project 4     $200 (displayed as max(weightedBilled))

[报表布局]

【问题讨论】:

  • 如果您想获得兴趣和答案,最好不要发布images的数据,我们不能从图像中剪切和粘贴,示例数据应该是消耗性文本在您的问题中,最好是 createinsert 语句,或者DB<>Fiddle 链接。一个好的 SQL 问题会有一个Minimal, Reproducible Example
  • “在 SSRS 2005 报告方” SSRS 2005?这意味着您也在使用 SQL Server 2005。如果您想要运行总计,则必须使用三角形 JOIN。更好的解决方案是使用受支持的 SQL Server 版本,而不是使用大约 8 年没有任何支持的版本。 所有支持的 SQL Server 版本都支持累积聚合。

标签: sql sql-server reporting-services


【解决方案1】:

你的问题不是很清楚,但假设你想将一个字段的最大值相加,并且假设你有一个名为 EmployeeRowGroup 的员工行组,那么表达式将如下所示。

=SUM(MAX(Fields!WeightedBilled.Value, "EmployeeRowGroup"))

行组区分大小写,必须用双引号括起来。

【讨论】:

    猜你喜欢
    • 2010-10-26
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多