поиск интервалов дат начала и окончания - PullRequest
0 голосов
/ 17 июля 2011

У меня есть такая таблица (плюс еще 10 столбцов), содержащая более 1 миллиона часто обновляемых записей:

 id pid start_date          end_date  
  1 761 2011-07-25 00:00:00 2011-08-01 00:00:00
  2 761 2011-08-01 00:00:00 2011-08-22 00:00:00
  3 761 2011-08-22 00:00:00 2011-09-19 00:00:00
  4 802 2011-08-22 00:00:00 2011-09-19 00:00:00
  5 761 2011-06-05 00:00:00 2011-07-05 00:00:00

, и я хочу получить результат для определенного pid (761 в примере ниже)) со всеми последовательными интервалами, объединенными:

 id pid start_date          end_date  
  1 761 2011-07-25 00:00:00 2011-09-19 00:00:00
  5 761 2011-06-05 00:00:00 2011-07-05 00:00:00

В настоящее время я делаю это в коде, но хотел бы полностью перенести эту функциональность на сторону БД.Есть идеи, как это сделать?

edit: столбцы start_date и end_date имеют тип DATETIME.

1 Ответ

0 голосов
/ 17 июля 2011

Это действительно намного лучше сделано в коде.Цикл по строкам, если это для того же продукта, обновите дату окончания, в противном случае создайте новую запись массива.

Чтобы узнать, насколько это сложно в SQL, см. M y попытку решенияэто в SQL Server :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...