Ver Mensaje Individual
  #12  
Antiguo 21-09-2022
Aitrus Aitrus is offline
Registrado
 
Registrado: mar 2016
Posts: 9
Reputación: 0
Aitrus Va por buen camino
Hola, perdon a todos, al copiar he arrastrado un número, en cuanto al SQL és MySQL:
En una tabla con estos registros:
Cita:
id Desde Hasta
1 2022-09-21 2022-09-23
1 2022-09-21 2022-09-23
1 2022-09-22 2022-09-25
1 2022-09-22 2022-09-25
me devuelve esto:
Cita:
Código:
id Desde Hasta
1 2022-09-21 2022-09-25
1 2022-09-21 2022-09-25
Y debería devolver un solo registro por id con igual fechas: en cuanto a la consulta és la última de Bucanero:

Código SQL [-]
-- localiza los principios de bloque independientes
SELECT `ini`.id,
       ini.desde,
       (                                                                    --
        -- localiza el fin de bloque
        -- que sera la fecha mas cercana al inicio de bloque
        SELECT min(fin.hasta) AS hasta
          FROM `fechas` fin
               LEFT JOIN fechas ant
                  ON     ant.id = fin.id
                     AND NOT (fin.desde = ant.desde AND fin.hasta = ant.hasta)
                     AND fin.hasta BETWEEN ant.desde AND ant.hasta
         WHERE     ant.id IS NULL
               AND fin.id = ini.id
               AND fin.`hasta` >= ini.hasta)
          AS hasta
  FROM `fechas` ini
       LEFT JOIN fechas ant
          ON     ant.id = ini.id
             AND NOT (ini.desde = ant.desde AND ini.hasta = ant.hasta)
             AND ini.desde BETWEEN ant.desde AND ant.hasta
 WHERE ant.id IS NULL
ORDER BY ini.id, ini.desde;

Gracias.

Última edición por Casimiro Notevi fecha: 21-09-2022 a las 20:00:11.
Responder Con Cita