2013-04-17 51 views
-1

這裏的數字是表:
飛行(FLIGHTID,MAXCAPACITY)
FlightBooking(BookingID,FLIGHTID,NumSeats,狀態)與狀態:保留舉行,過期,Cancalled。如何獲得可用座位

我已經知道如何顯示保留座位和保留座位,但我在計算可用座位時遇到問題,該座位應該等於MaxCapacity減去保留座位和保留座位。

有任何建議嗎?

回答

0
SELECT f.MaxCapacity - COUNT(b.Status) 
FROM Flight f 
INNER JOIN FlightBooking b 
ON f.FlightID = b.FlightID 
WHERE b.Status IN ('Reserved','Held') 
GROUP BY f.FlightID 
0
select flightid, 
     max(f.maxcapacity) - count(case when fb.status in ('reserved', 'held') 
             then 1 
             else 0 
            end) 
from flight f 
left outer join flightbooking fb on fb.flightid = f.flightid 
group by f.flightid