我试图让SQL Server按照嵌套选择列进行排序。我知道这不是这样做的最好方式,但需要完成。SQL Server ORDER BY/WHERE嵌套选择
我有两张表,Bookings和BookingItems。 BookingItems包含StartDate和EndDate字段,预订中可以有多个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的
完美的作品,谢谢。 – Echilon 2010-04-02 17:29:21