Тестируемый образец:Mysql - Группа по с Диапазон дат
CREATE TABLE IF NOT EXISTS test_range (
`day` DATE,
`available` INT(11),
`car_id` INT(11)
);
INSERT INTO test_range (`day`, `available`, `car_id`) VALUES ('2014-11-20', 5, 1);
INSERT INTO test_range (`day`, `available`, `car_id`) VALUES ('2014-11-21', 5, 1);
INSERT INTO test_range (`day`, `available`, `car_id`) VALUES ('2014-11-22', 3, 1);
INSERT INTO test_range (`day`, `available`, `car_id`) VALUES ('2014-11-23', 5, 2);
INSERT INTO test_range (`day`, `available`, `car_id`) VALUES ('2014-11-24', 5, 2);
Мой тестовый запрос:
SELECT * from test_range
WHERE day between '2014-11-20' and '2014-11-23'
AND available > 3
GROUP BY car_id;
В этом случае я хочу, чтобы все автомобили, которые доступны в течение этого диапазона, но в тот же день 22 автомобиль недоступен, поэтому я хочу, чтобы он не появлялся в результате.
Например, если у меня есть диапазон между днями, 20, 21, 22 и я хочу, чтобы доступность была выше 4, автомобиль 1 не должен появляться, потому что в день 22 его нет.
Как я могу получить только автомобили, доступные во все дни в пределах данного диапазона?
Вы должны уточнить ваши требования. 'car_id = 2' также недоступен на 22-м, ли это дисквалифицирует его из набора результатов? –
Не могли бы вы рассказать о том, что не так с вашим текущим кодом? Какой результат вы получаете и чего вы ожидаете получить? –
Например, если у меня есть диапазон между днями, 20, 21, 22, и я хочу, чтобы доступность была выше 4, автомобиль 1 не должен появляться, потому что в день 22 его нет. – csdle