/ / adicionando +1 dia à próxima data em uma junção em uma sequência incompleta de datas - mysql, sql

adicionando +1 dia à próxima data em uma junção em uma sequência incompleta de datas - mysql, sql

Eu tenho uma tabela que armazena uma seqüência incompleta datas dentro do ano:

eg.
Jan 1
Jan 4
Jan 9
Jan 24
Jan 25
Feb 16
Feb 18
Feb 21
Feb 28
Mar 3
.
.
.
Dec 31

Eu preciso fazer um auto se juntar à mesa nocoluna de datas. A data precisa se unir na data a onde a data b é + 1 dia na seqüência. Se as datas estivessem completas, eu faria uma junção como a.date = b.date mas em vez de a.date = DATE_ADD(b.date,INTERVAL 1 DAY). Mas eu preciso ser algo assim a.date = NEXT_DATE_IN_SEQUENCE(b.date), mas é claro que isso não é uma função real, mas estou procurando por algo assim.

Respostas:

1 para resposta № 1

Você poderia usar um produto semi-cartesiano:

SELECT a.date, MIN(b.date)
FROM dates a
INNER JOIN dates b ON b.date > a.date
GROUP BY a.date;

Demonstração


1 para resposta № 2

Eu abordaria isso usando uma subconsulta correlacionada:

select t.*,
(select t2.date
from table t2
where t2.date > t.date
order by t2.date
limit 1
) as next_date
from table t;