-1

次の表は、
Flight (FlightID, MaxCapacity)
FlightBooking (BookingID, FlightID, NumSeats, Status) のステータスで、Reserved、Held、Expired、Cancalled です。

リザーブド シートとホールド シートを表示する方法はすでに知っていますが、MaxCapacity からリザーブド シートとホールド シートを差し引いた値に等しい使用可能なシートの計算に問題があります。

これについての提案はありますか?

4

2 に答える 2

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
于 2013-04-17T15:12:19.350 に答える
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
于 2013-04-17T15:11:57.887 に答える