sql - 需要仅按多个重复值之一对列进行总计...?
问题描述
基本上,我只需要每个员工的 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
解决方案
这是未经测试的,但你可以试试这个......
对于员工组级别的行,使用
=AVG(Fields!GROSSWAGES.Value)
由于工资总是相同的,因此平均工资会给您相同的金额。
然后对于 Total 行使用
=SUM(AVG(Fields!GROSSWAGES.Value, "myEmployeeRowGroupName"))
myEmployeeRowGroupName
只是在主设计图面下方的分组面板中看到的行组的名称。它区分大小写,并且必须用引号引起来。
上面的表达式将获取范围(员工行组)中每个实例的平均值,然后对结果求和。
这是我的想法,未经测试,所以你可能需要稍微调整一下。
推荐阅读
- html - 如何在手机上使用最小宽度?
- java - JSONConfigFile 中的额外参数是否会影响 JSON 文件的解析
- python - 如果它们不包含在列表中,则从 pandas 列中删除元素
- python - 如何在给定的时间间隔内使用牛顿法
- android - 如何使用 libvlc 在 android 上加速 ffmpeg 流式传输?
- c# - 二维码不显示二维码验证
- javascript - VSCode如何停止折叠代码的自动扩展
- python - 使用 int 和 str 元素对列表进行排序
- python - 带有 python 稀疏数组的 regionprops
- windows - 列出所有打开的资源管理器窗口的 Powershell 脚本