Hi!

Although I try for some time, I am not able to write an SQL-Query that can do 
the following:

I have a very big table (let's call it "mytable") with information like this:

ID  BEG          END
1   2000-01-01   2000-03-31
1   2000-04-01   2000-05-31
1   2000-04-15   2000-07-31
1   2000-09-01   2000-10-31
2   2000-02-01   2000-03-15
2   2000-01-15   2000-03-31
2   2000-04-01   2000-04-15
3   2000-06-01   2000-06-15
3   2000-07-01   2000-07-15

There's an ID and time periods defined by a start value (BEG) and an end value 
(END)

I want to merge all periods belonging to the same ID, iff their time periods 
are overlapping or in a direct sequence.

Therefore the result should somehow look like this:


ID  BEG          END

1   2000-01-01   2000-07-31

1   2000-09-01   2000-10-31

2   2000-01-15   2000-03-31

2   2000-04-01   2000-04-15

3   2000-06-01   2000-06-15

3   2000-07-01   2000-07-15

I tried using "WITH RECURSIVE" but I didn't succeed.

My server is PostgreSQL 8.4. Unfortunately I can't do anything like update or 
install some fancy module...

Thank you for your help!

Best regards,

Marcel Jira

Reply via email to