У меня есть две таблицы в базе данных.'автомобиль', 'резервирование'
таблица 'автомобиль' имеет следующие столбцы
id
-> первичный ключ
name
->название автомобиля, например SUV, STANDARD, ECONOMY
count
-> Количество доступных автомобилей
в таблице «Бронирование» есть следующие столбцы
id
-> Автоматическое увеличение идентификатора резервирования
date_out
-> Дата начала резервирования, например: '2019-01-01 00: 00: 00'
date_in
-> Резервированиедата окончания, например: '2019-01-05 23: 59: 59'
car_name
-> Одно из названий автомобилей из таблицы 'car'
Я хочу запросить базу данныхчтобы показать наличие / нехватку автомобилей каждого типа для диапазона дат.
Таким образом, выходные данные должны быть похожи на эту таблицу.
---- дата ----- car_name наличие / нехватка
2019-01-01 ---- Внедорожник ---- 1
2019-01-01 ЭКОНОМИКА -1
отрицательный знак указывает на недостаток
положительный знак указывает на наличие
Что я сделал
Этот запрос работает только для одной указанной даты и имени автомобиля.
Set @forDate = '2019-02-14';
Set @car = 'STANDARD';
Set @total_reservation = (select count(*) as total_reservation from (
select date_out, date_in, car_type from reservation
where date_in > @forDate and date_out < @forDate
and car_type = @car
)AS t1);
select @total_reservation;
Set @car_count = (select count from car where name = @car);
select @car_count;
select @car_count - @total_reservation;
У меня проблема с преобразованием запроса для диапазона дат, введенного пользователем.