Interseccion de fechas

30/07/2004 - 18:07 por SRenau | Informe spam
Hola,

El problema es el siguiente, tengo una tabla con 3 campos
id, fecha_inicio, fecha_fin.

Desearia obtener las fechas para las cuales
hay "solapamiento" de dias y me cuente el numero de
registros que intervienen.

Ejemplo:

id f_inicio f_fin
1 01/07/2004 09/07/2004
2 06/07/2004 15/07/2004
3 18/07/2004 22/07/2004
4 01/08/2004 09/08/2004
5 04/08/2004 05/08/2004
6 05/08/2004 19/08/2004
7 11/09/2004 09/09/2004

Resultado

count f_inicio f_fin
2 06/07/2004 09/07/2004
3 05/08/2004 05/08/2004

Es dificil de explicar asi que si hay dudas preguntar.

Gracias.
 

Leer las respuestas

#1 Maxi
30/07/2004 - 18:29 | Informe spam
Hola, hoy es viernes y no se si lo que voy a poner es una tontera total,
pero ahi vamos :-)

==
CREATE TABLE #PEPE (ID INT IDENTITY,FECHA_I DATETIME, FECHA_O DATETIME)
GO

INSERT INTO #PEPE (FECHA_I,FECHA_O) VALUES ('20040701','20040709')
INSERT INTO #PEPE (FECHA_I,FECHA_O) VALUES ('20040706','20040715')
INSERT INTO #PEPE (FECHA_I,FECHA_O) VALUES ('20040718','20040722')
INSERT INTO #PEPE (FECHA_I,FECHA_O) VALUES ('20040801','20040809')
INSERT INTO #PEPE (FECHA_I,FECHA_O) VALUES ('20040804','20040805')
INSERT INTO #PEPE (FECHA_I,FECHA_O) VALUES ('20040805','20040819')
INSERT INTO #PEPE (FECHA_I,FECHA_O) VALUES ('20040911','20040909')

GO

SELECT FECHA_I,FECHA_O,(SELECT COUNT(*) FROM #PEPE PEP WHERE PEP.ID <>
PEP2.ID
AND (PEP.FECHA_I <= PEP2.FECHA_I AND PEP.FECHA_O >= PEP2.FECHA_I) OR
(PEP.FECHA_I >= PEP2.FECHA_I AND PEP.FECHA_I <= PEP2.FECHA_O)) AS CANTIDAD
FROM #PEPE PEP2

==
Suerte


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"SRenau" escribió en el mensaje
news:76cb01c4764f$4033b140$
Hola,

El problema es el siguiente, tengo una tabla con 3 campos
id, fecha_inicio, fecha_fin.

Desearia obtener las fechas para las cuales
hay "solapamiento" de dias y me cuente el numero de
registros que intervienen.

Ejemplo:

id f_inicio f_fin
1 01/07/2004 09/07/2004
2 06/07/2004 15/07/2004
3 18/07/2004 22/07/2004
4 01/08/2004 09/08/2004
5 04/08/2004 05/08/2004
6 05/08/2004 19/08/2004
7 11/09/2004 09/09/2004

Resultado

count f_inicio f_fin
2 06/07/2004 09/07/2004
3 05/08/2004 05/08/2004

Es dificil de explicar asi que si hay dudas preguntar.

Gracias.










Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.722 / Virus Database: 478 - Release Date: 19/07/2004

Preguntas similares