【发布时间】:2020-12-17 10:44:25
【问题描述】:
我有以下表格:
create table Cars
(
CarID int,
CarType varchar(50)
);
create table Maintenances
(
CarID int,
MaintenanceDate date,
MaintenanceCost money
);
create table Repairs
(
CarID int,
RepairDate date,
RepairCost money
);
我试过这个:
SELECT C.CarType,
SUM(MaintenanceCost),
SUM(RepairCost)
FROM Cars AS C
LEFT JOIN Maintenances AS M ON M.CarID=C.CarID
LEFT JOIN Repairs AS R ON R.CarID=C.CarID
WHERE M.MaintenanceDate BETWEEN '2020-12-01' AND '2020-12-31' AND
R.RepairDate BETWEEN '2020-12-01' AND '2020-12-31'
GROUP BY C.CarType
但它不会返回所有 CarType 的值。看到这个小提琴:Fiddle
【问题讨论】:
-
您的
WHERE正在将您的外连接变成内连接
标签: sql sql-server datetime left-join where-clause