1
我有以下SQL查询:SQL - 派生表问题
SELECT VehicleRegistrations.ID, VehicleRegistrations.VehicleReg,
VehicleRegistrations.Phone, VehicleType.VehicleTypeDescription,
dt.ID AS 'CostID', dt.IVehHire, dt.FixedCostPerYear, dt.VehicleParts,
dt.MaintenancePerMile, dt.DateEffective
FROM VehicleRegistrations
INNER JOIN VehicleType ON VehicleRegistrations.VehicleType = VehicleType.ID
LEFT OUTER JOIN (SELECT TOP (1) ID, VehicleRegID, DateEffective, IVehHire,
FixedCostPerYear, VehicleParts, MaintenancePerMile
FROM VehicleFixedCosts
WHERE (DateEffective <= GETDATE())
ORDER BY DateEffective DESC) AS dt
ON dt.VehicleRegID = VehicleRegistrations.ID
我基本上想要做的始终是从“VehicleFixedCosts”表,其中VehicleRegID相匹配的在选择前1纪录主要查询。这里发生的事情是在连接之前选择最上面一行,所以如果最上面一行的车辆注册与我们加入的不匹配,它将不会返回任何内容。
任何想法?我真的不希望有使用子查询的每一个我需要返回
我在写完全相同的查询:P –