タイムスパン チャンクを含むテーブルがあります。
期間には開始日と日数があります
表には重複しない期間があります。例:
2012-01-01 + 5 日および 2012-05-01 + 3 日
また、2012 年 1 月 1 日 + 5 日と 2012 年 1 月 3 日 + 3 日など、重複する期間もあります。ただし、連続して発生するものに主に関心があります。たとえば、
2012-01-01 + 5 日および 2012-01-06 + 3 日および 2012-01-09 + 13 日です。
1. と 2. を通常 (各エントリを 1 行として) 選択するクエリが必要です。
ケース 3. 1 つの行として組み合わせて選択する必要があります。たとえば、
2012-01-01 + 5日と 2012-01-06 + 3日 = 2012-01-01 + 8日
2012-01-01 + 5 日 と 2012- 01-06 + 3日および 2012-01-09 + 13日 = 2012-01-01 + 21 日
DB の例を次に示します。
CREATE TABLE IF NOT EXISTS `chunks` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`start` date NOT NULL,
`length` smallint(4) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM ;
INSERT INTO `chunks` (`id`, `start`, `length`) VALUES
(1, '2012-01-01', 5),
(2, '2012-05-01', 3),
(3, '2012-01-03', 3),
(4, '2012-01-06', 3),
(5, '2012-01-09', 13);
これは MySQL で可能ですか? それとも、後で Java を使用したほうがよいのでしょうか。