В основном мне нужно показать количество забронированных, отмененных и доступных мест для поезда.
У меня есть это для доступных мест:
SELECT t.trainid, t.maxcapacity - coalesce(sum(b.numseats), 0) as availableseats
FROM Train t
left JOIN TrainBooking b
ON t.TrainID = b.TrainID
WHERE b.Status IN ('r')
GROUP BY t.TrainID , t.maxcapacity
В таблице железнодорожных билетов у меня есть столбец с названием "статус". Статус либо зарезервирован, либо отменен. Мне нужно отобразить зарезервированные и отмененные места с доступными местами, но я не уверен, как это сделать.
Пример данных двух таблиц:
Поезд:
TrainId maxseats
1 10
2 10
Обучение поезду:
bookingid trainid status numseats
1 1 'r' 2
2 1 'c' 2
3 2 'r' 3
Результаты:
trainid availableseats cancelledseats reservedseats
1 8 2 2
2 7 0 3
Я новичок в SQL, поэтому любая помощь будет оценена - спасибо.