Я пытаюсь упорядочить SQL Server по столбцу из вложенного выбора. Я знаю, что это не лучший способ сделать это, но это нужно сделать.
У меня есть две таблицы: Бронирования и Элементы бронирования. BookingItems содержит поля StartDate и EndDate, и в Booking может быть несколько BookingItems. Мне нужно найти самую раннюю дату начала и дату окончания в BookingItems, затем отфильтровать и отсортировать по этим значениям.
Я пробовал с помощью вложенного выбора, но когда я пытаюсь использовать один из выбранных столбцов в WHERE или ORDER BY, я получаю «Неверное имя столбца».
SELECT b.*, (SELECT COUNT(*) FROM bookingitems i WHERE b.BookingID = i.BookingID) AS TotalRooms,
(SELECT MIN(i.StartDate) FROM bookingitems i WHERE b.BookingID = i.BookingID) AS StartDate,
(SELECT MAX(i.EndDate) FROM bookingitems i WHERE b.BookingID = i.BookingID) AS EndDate
FROM bookings b LEFT JOIN customers c ON b.CustomerID = c.CustomerID WHERE StartDate >= '2010-01-01'
Я что-то упускаю из порядка SQL? Я использую SQL Server 2008.