У меня есть таблица счетов, в которой я храню счета-фактуры для данных диапазонов данных (например, счет-фактура 1 для даты между 2012-01-01-2012-01-31). Теперь это возможно за несколько дней, чтобы не иметь счета связаны, так что вы быЗаполнение пробелов между диапазонами данных в Mysql
> ID | START_DATE | END_DATE
> ----------------------------
> 1 | 2012-01-01 | 2012-01-31
> 2 | 2012-02-05 | 2012-02-28
Так что в этом случае 5 дней с февраля не будет иметь счет, связанный с ними. В настоящее время я хочу оценить затраты, поэтому мне нужно как-то «получить» эти недостающие диапазоны данных.
Я видел несколько ответов на SO с похожими проблемами, но большинство из них полагаются на дополнительную таблицу календаря, которую я не могу создать.
Есть ли какое-либо другое решение SQL, или было бы лучше фактически получать счета, а затем вычислять пробелы в моем приложении?
это сделал, спасибо! – MichelReap
Я знаю, что это не было частью вопроса, хотя для будущих читателей это не работает, если набор данных имеет перекрывающиеся даты. См. [This fiddle] (http://sqlfiddle.com/#!2/4ddcf/1), где я добавил диапазон '2012-03-14' в' 2012-03-17', и он неправильно добавляет 18 20-е место в промежутке, где строка №5 противоречит тому, что с 16-го по 19-е место охвачено. – Turnerj
@Turnerj благодарит за ваш комментарий, вы правы, мне нужно будет обновить свой ответ, лучше указать, что он не будет работать, если набор данных имеет перекрывающиеся даты – fthiella