ser principalmente un desarrollador de C#, estoy rascándome la cabeza al intentar crear una solución basada pura T-SQL para un problema que involucra resumiendo día/mes dado un conjunto de intervalos de fechas.Resumir días por mes en base a intervalos de fechas
que tienen un conjunto de datos buscando algo como esto:
UserID Department StartDate EndDate
====== ========== ========== ==========
1 A 2011-01-02 2011-01-05
1 A 2011-01-20 2011-01-25
1 A 2011-02-25 2011-03-05
1 B 2011-01-21 2011-01-22
2 A 2011-01-01 2011-01-20
3 C 2011-01-01 2011-02-03
Los rangos de fechas no se solapan, puede durar varios meses, pueden existir varios rangos para un usuario y departamento específico dentro de un solo mes . Lo que me gustaría hacer es resumir el número de días (inclusive) por usuario, departamento, año y mes, así (con las reservas de los errores matemáticos en mi ejemplo ...):
UserID Department Year Month Days
====== ========== ==== ===== ====
1 A 2011 01 10
1 A 2011 02 4
1 A 2011 03 5
1 B 2011 01 2
2 A 2011 01 20
3 C 2011 01 31
3 C 2011 02 3
Esta información va a una nueva tabla utilizada por las herramientas de informes. Espero que la descripción del problema sea lo suficientemente clara, esta es mi primera publicación aquí, sea gentil :-)
Gracias de antemano!
Gracias! Funciona bien, el uso interesante de ** master..spt_values ** no se ha encontrado anteriormente con esa tabla del sistema. Se puede encontrar más información sobre ** master..spt_values ** [aquí] (http://stackoverflow.com/questions/4273723/what-is-the-purpose-of-system-table-table-master-spt- values-and-what-are-the-mea). –
+1 para usar la "Tabla de conteo" original. ;-) –