jasper-reports - 基于另一个字段的字段求和
问题描述
我正在 iReport 中创建报告。我正在使用 postgresql9.2 数据库。尝试基于另一个字段创建总和。首先,我按车辆编号按字段创建报告分组,然后创建一个变量,我试图在其中按字段分组执行求和。
我的报告结果
vh_name | va_date | trip_no |
Vehicle-01 | 2019-01-15 | 1 |
Vehicle-01 | 2019-01-15 | 1 |
Vehicle-01 | 2019-01-16 | 1 |
-----------+------------+---------+
Vehicle-02 | 2019-01-17 | 1 |
Vehicle-02 | 2019-01-18 | 1 |
Vehicle-02 | 2019-01-19 | 1 |
-----------+------------+---------+
Vehicle-03 | 2019-01-17 | 1 |
Vehicle-03 | 2019-01-17 | 1 |
Vehicle-03 | 2019-01-17 | 1 |
Vehicle-03 | 2019-01-18 | 1 |
-----------+------------+---------+
我的预期结果
vh_name | va_date | trip_no | total_trip |
Vehicle-01 | 2019-01-15 | 1 | |
Vehicle-01 | 2019-01-15 | 1 | 3 |
Vehicle-01 | 2019-01-16 | 1 | |
-----------+------------+---------+-------------
Vehicle-02 | 2019-01-17 | 1 | |
Vehicle-02 | 2019-01-18 | 1 | 3 |
Vehicle-02 | 2019-01-19 | 1 | |
-----------+------------+---------+-------------
Vehicle-03 | 2019-01-17 | 1 | |
Vehicle-03 | 2019-01-17 | 1 | |
Vehicle-03 | 2019-01-17 | 1 | 4 |
Vehicle-03 | 2019-01-18 | 1 | |
-----------+------------+---------+-------------
解决方案
基于Using SUM() without grouping results,您的 SQL 应该如下所示:
SELECT vh_name, va_dat, trip_no, SUM(trip_sum.amount) as trip_sum
FROM my_trips
CROSS JOIN (
SELECT SUM(amount) as amount FROM my_trips AS amount
GROUP BY vh_name) trip_sum
请注意,唯一计数可能更容易(如果 trip_no 始终为 1):
SELECT vh_name, va_dat, trip_no, COUNT(DISTINCT vh_name) as amount
FROM my_trips
推荐阅读
- c# - 使用 AssemblyInstaller 卸载服务后,我无法删除 .exe 文件
- python - Python/Pandas 中水平行的百分位数
- angular - 如何始终显示 ng-select 的占位符?
- html - 为什么要使用
- python - PyTorch 的 conv1d 和 SciPy 的 convolve 结果不同
- azure-data-factory - 如何创建 azure datafactory 管道?
- javascript - 为什么在 React 中映射 Array 后出现控制台键错误?
- reactjs - sqlite3 的电子重建失败
- angular - @Injectable() 装饰器和提供者数组
- python - 如何在图上找到一组元素的所有唯一排列