【发布时间】:2021-05-01 18:19:03
【问题描述】:
我有以下 SQL Server 表:
create table Cars
(
CarID int,
CarType varchar(50),
PlateNo varchar(20)
);
create table Fuelings
(
CarID int,
FuelingDate date,
Odometer int,
Quantity decimal,
Cost money
);
create table Maintenances
(
CarID int,
MaintenanceDate date,
MaintenanceCost money
);
我在计算按 CarType 列分组的油耗时遇到问题。为了得到油耗,我想计算每辆车的距离和油量,然后按 CarType 列分组。
我现在拥有的:
SELECT DISTINCT C.CarType AS [Car type],
SUM(M.MaintenanceCost) AS [Maintenance],
SUM(F.Cost) AS [Fuel],
(MAX(Odometer)-MIN(Odometer)) AS [Distance],
(SUM(Quantity)*100)/(MAX(Odometer)-MIN(Odometer)) AS [L/100km]
FROM Cars AS C
LEFT JOIN Maintenances AS M ON M.CarID=C.CarID
AND M.MaintenanceDate BETWEEN '2021-01-01 00:00:00' AND '2021-01-31 23:59:29'
LEFT JOIN Fuelings AS F ON F.CarID=C.CarID
AND F.FuelingDate BETWEEN '2021-01-01 00:00:00' AND '2021-01-31 23:59:29'
GROUP BY C.CarType
类型“SUV”的期望结果:
- 总燃料量:301
- 总距离:1600
- 消费:18,8125
【问题讨论】:
-
请确保您的问题是独立的。包含一个小提琴很棒,但您需要确保您的问题也包含查询。
-
而确切的问题是......?
-
“一些总和做一些计算”不是问题。
-
对不起。我已经更新了请求和小提琴。
标签: sql sql-server group-by sum