Предположим, у вас есть комната, которая 100sqft и вы хотите арендовать его с 1 августа по 31 августа Bookings Таблица схемыНахождение площади для диапазона дат
startdate|enddate|area|storageid
вы следующие заказы
06-Aug|25-Aug|50|'abc'
05-Aug|11-Aug|40|'xyz'
18-Aug|23-Aug|30|'pqr'
13-Aug|16-Aug|10|'qwe'
Теперь кто-то запрашивает бронирование с 08 августа по 20 августа. Для этого диапазона дат максимальная доступная площадь - 10 кв. Футов (так как для дат 8,9,10 и 11 августа доступно только 10 кв. Футов).
Как бы вы создали эффективный SQL-запрос, чтобы получить это? Сейчас у меня очень грязный и неэффективный запрос, который дает неправильные результаты для некоторых случаев. Я не отправляю запрос, потому что он настолько грязный, что я не могу его объяснить сам.
Я не обязательно хочу его решать, используя только SQL. Если есть алгоритм, который может эффективно его решить, я бы извлек все данные из базы данных.
Кто придумал, что способ сохранения данных даты? – Drew
Сервер Mysql и sql - это два разных продукта. Pls удаляет ненужный тег продукта. Pls также включает то, что вы пробовали, и какие проблемы вы испытываете. На данный момент ваш вопрос больше нравится: дайте мне код. Есть много вопросов о SO вокруг резервирования. Вы проверили их? – Shadow
@Drew: Игнорировать формат для дат. Я сохраняю даты в формате YYYY-MM-DD –