У меня есть следующий 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
Что я в принципе хочу сделать, это всегда выбрать верхнюю 1 запись из таблицы «VehicleFixedCosts», где VehicleRegID соответствует один в основной запрос. Что здесь происходит, так это то, что он выбирает верхнюю строку перед соединением, поэтому, если регистрация транспортного средства в верхней строке не соответствует той, к которой мы присоединяемся, ничего не возвращает.
Любые идеи? Я действительно не хочу, чтобы иметь использование подзапросов для каждого из столбцов, мне нужно вернуть
Я писал тот же запрос: P –