SQL Select 查询错误
SQL Select Query Error
这里我有一个table
expenses
列
- id (PK)
- type_id(FK)
- 数量
- 日期
- vehicle_id(FK)
在我的jtable中我想这样显示
我用这个sql代码
SELECT vehicle_id,SUM(amount) FROM expenses GROUP BY type_id;
我得到的输出是
但我想要它像上一张图片(长的那张)一样。我该怎么办?
备注
这里我使用了 Sum 来获取多个 amount 值。type_id用于表示各种费用类型,如柴油、机油、服务..
您可以使用条件聚合:
SELECT vehicle_id,
SUM(CASE WHEN type_id = 1 THEN amount ELSE 0 END) AS Diesel,
SUM(CASE WHEN type_id = 2 THEN amount ELSE 0 END) AS Insurance,
SUM(CASE WHEN type_id = 3 THEN amount ELSE 0 END) AS Tyre,
SUM(CASE WHEN type_id = 4 THEN amount ELSE 0 END) AS Battery,
SUM(CASE WHEN type_id = 5 THEN amount ELSE 0 END) AS Oil,
SUM(CASE WHEN type_id = 6 THEN amount ELSE 0 END) AS Garage
FROM expenses
GROUP BY vehicle_id;
您只需要 GROUP BY
vehicle_id
。然后根据type_id
进行条件SUM
操作。通过这种方式,您可以获得每个 vehicle_id
.
type_id
的部分总和
这里我有一个table
expenses
列
- id (PK)
- type_id(FK)
- 数量
- 日期
- vehicle_id(FK)
在我的jtable中我想这样显示
我用这个sql代码
SELECT vehicle_id,SUM(amount) FROM expenses GROUP BY type_id;
我得到的输出是
但我想要它像上一张图片(长的那张)一样。我该怎么办?
备注
这里我使用了 Sum 来获取多个 amount 值。type_id用于表示各种费用类型,如柴油、机油、服务..
您可以使用条件聚合:
SELECT vehicle_id,
SUM(CASE WHEN type_id = 1 THEN amount ELSE 0 END) AS Diesel,
SUM(CASE WHEN type_id = 2 THEN amount ELSE 0 END) AS Insurance,
SUM(CASE WHEN type_id = 3 THEN amount ELSE 0 END) AS Tyre,
SUM(CASE WHEN type_id = 4 THEN amount ELSE 0 END) AS Battery,
SUM(CASE WHEN type_id = 5 THEN amount ELSE 0 END) AS Oil,
SUM(CASE WHEN type_id = 6 THEN amount ELSE 0 END) AS Garage
FROM expenses
GROUP BY vehicle_id;
您只需要 GROUP BY
vehicle_id
。然后根据type_id
进行条件SUM
操作。通过这种方式,您可以获得每个 vehicle_id
.
type_id
的部分总和