У меня есть подзапрос в WHERE-предложении внутри подзапроса.Несмотря на проблемы с дизайном базы данных (не моя работа), я получаю некоторые странные ошибки при попытке расширить WHERE-предложение верхнего уровня в этом выражении.Пример ниже РАБОТАЕТ.
LEFT OUTER JOIN CargoVoyageLocation on CargoVoyageLocation.VoyageLocationID
= (SELECT TOP 1 CargoVoyageLocation.VoyageLocationID FROM CargoVoyageLocation
JOIN Cargo on CargoVoyageLocation.CargoID = Cargo.CargoID
JOIN CargoType on Cargo.CargoTypeID = CargoType.CargoTypeID
WHERE
(CargoType.SystemName = 'HAZMAT' OR CargoType.SystemName = 'BUNKERS' OR Cargo.IsBunkers = 1)
AND
CargoVoyageLocation.VoyageLocationID
= (SELECT VoyageLocationAttribute.VoyageLocationID FROM VoyageLocationAttribute
JOIN VoyageLocationAttributeName
ON VoyageLocationAttribute.VoyageLocationAttributeNameID = VoyageLocationAttributeName.VoyageLocationAttributeNameID
WHERE VoyageLocationAttribute.VoyageLocationAttributeNameID = (SELECT VoyageLocationAttributeNameID FROM VoyageLocationAttributeName WHERE SystemName = 'PREVIOUS_VOYAGE_ID')
AND VoyageLocationAttribute.AttributeInt = v.VoyageID) ORDER BY CargoVoyageLocation.ModifiedDate DESC)
Затем я добавляю простое логическое выражение и скобки:
LEFT OUTER JOIN CargoVoyageLocation on CargoVoyageLocation.VoyageLocationID
= (SELECT TOP 1 CargoVoyageLocation.VoyageLocationID FROM CargoVoyageLocation
JOIN Cargo on CargoVoyageLocation.CargoID = Cargo.CargoID
JOIN CargoType on Cargo.CargoTypeID = CargoType.CargoTypeID
WHERE
(CargoType.SystemName = 'HAZMAT' OR CargoType.SystemName = 'BUNKERS' OR Cargo.IsBunkers = 1)
AND
Here ---> (1=0 OR CargoVoyageLocation.VoyageLocationID
= (SELECT VoyageLocationAttribute.VoyageLocationID FROM VoyageLocationAttribute
JOIN VoyageLocationAttributeName
ON VoyageLocationAttribute.VoyageLocationAttributeNameID = VoyageLocationAttributeName.VoyageLocationAttributeNameID
WHERE VoyageLocationAttribute.VoyageLocationAttributeNameID = (SELECT VoyageLocationAttributeNameID FROM VoyageLocationAttributeName WHERE SystemName = 'PREVIOUS_VOYAGE_ID')
AND VoyageLocationAttribute.AttributeInt = v.VoyageID) ORDER BY CargoVoyageLocation.ModifiedDate DESC))
Это приводит к следующей ошибке:
- Неверный синтаксис рядом с ключевым словом 'ORDER'.
- Неверный синтаксис рядом с' v '.
Я в тупике.Что здесь происходит?