首页 > 解决方案 > 需要仅按多个重复值之一对列进行总计..​​.?

问题描述

基本上,我只需要每个员工的 GROSSWAGES 值的总和。我对 SSRS 方面或数据方面的解决方案持开放态度。如果我用每个员工的不同 GROSSWAGES 做另一个数据集,我可以获得我需要的值,但它不允许我将来自两个数据集的数据放入一个矩阵中。

以下是查询中的数据示例:

SELECT DISTINCT
    UPR00100.EMPLOYEEID
   ,UPR30300.PAYROLLCD
   ,UPR30300.AMOUNT
   ,UPR00900.GROSSWAGES
   ,CASE WHEN PAYROLLCD='401K' THEN AMOUNT ELSE 0 END AS '401K'
   ,CASE WHEN PAYROLLCD='401KM' THEN AMOUNT ELSE 0 END AS '401KM'
FROM    UPR00100 INNER JOIN
           UPR30300 ON UPR00100.EMPLOYEEID = UPR30300.EMPLOYEEID INNER JOIN
           UPR00900 ON UPR00100.EMPLOYEEID = UPR00900.EMPLOYEEID


EMPLOYEEID | PAYROLLCD | GROSSWAGES | AMOUNT   | 401K    | 401KM
00001      | 1S        | 12,500.00  | 7,500.00 |   0.00  |   0.00
00001      | 401K      | 12,500.00  |   375.00 | 375.00  |   0.00
00001      | 401KM     | 12,500.00  |   187.50 |   0.00  | 187.50
00002      | 1S        | 10,000.00  | 5,000.00 |   0.00  |   0.00
00002      | 401K      | 10,000.00  |   250.00 | 250.00  |   0.00
00002      | 401KM     | 10,000.00  |   125.50 |   0.00  | 125.00

将这些数据放入 SSRS 上的矩阵时,我需要它看起来像这样:

EMPLOYEEID | GROSSWAGES | 401K    | 401KM
00001      | 12,500.00  | 375.00  | 187.50
00002      | 10,000.00  | 250.00  | 125.00
------------------------------------------
TOTAL      | 22,500.00  | 625.00  | 312.50

这就是我最终得到的:

EMPLOYEEID | GROSSWAGES | 401K    | 401KM
00001      | 12,500.00  | 375.00  | 187.50
00002      | 10,000.00  | 250.00  | 125.00
------------------------------------------
TOTAL      | 67,500.00  | 625.00  | 312.50

标签: sqltsqlreporting-services

解决方案


这是未经测试的,但你可以试试这个......

对于员工组级别的行,使用

=AVG(Fields!GROSSWAGES.Value)

由于工资总是相同的,因此平均工资会给您相同的金额。

然后对于 Total 行使用

=SUM(AVG(Fields!GROSSWAGES.Value, "myEmployeeRowGroupName"))

myEmployeeRowGroupName只是在主设计图面下方的分组面板中看到的行组的名称。它区分大小写,并且必须用引号引起来。

上面的表达式将获取范围(员工行组)中每个实例的平均值,然后对结果求和。

这是我的想法,未经测试,所以你可能需要稍微调整一下。


推荐阅读