En SQL Server 2005 tengo una tabla con los datos que se ve algo como esto:SQL Agrupación alrededor de lagunas
WTN------------Date
555-111-1212 2009-01-01
555-111-1212 2009-01-02
555-111-1212 2009-01-03
555-111-1212 2009-01-15
555-111-1212 2009-01-16
212-999-5555 2009-01-01
212-999-5555 2009-01-10
212-999-5555 2009-01-11
A partir de este me gustaría extraer WTN, Min (Fecha), Max (Fecha) del giro es me gustaría también romper cada vez que hay un vacío en las fechas, por lo que a partir de los datos anteriores, mis resultados deben verse como:
WTN------------ MinDate---- MaxDate
555-111-1212 2009-01-01 2009-01-03
555-111-1212 2009-01-15 2009-01-16
212-999-5555 2009-01-01 2009-01-01
212-999-5555 2009-01-10 2009-01-11
- ¿Cómo puedo hacer º está en un SQL Select/Group By?
- ¿Se puede hacer esto sin una tabla o lista que enumere los valores en los que quiero identificar las lagunas (Fechas aquí)?
¿Por qué usar una tabla temporal para algo que pueda hacer en una vista en línea (o CTE)? Guarda tener que definir la tabla y las instrucciones INSERT ... –
Pero una tabla de números es tan útil para tantas cosas que no debería necesitar definirla repetidamente. Esto es mejor como mesa permanente en mi opinión. – HLGEM
¡Oh, no! Definiendo una mesa? ¿Poblarlo? Usted solo define la tabla y la rellena una vez. Ahora puede hacer referencia a esa tabla y no preocuparse por tener un código para dicho CTE en cada módulo donde necesite una secuencia. En teoría, será más eficiente que derivar en tiempo de ejecución porque, como mencioné anteriormente, estará en la memoria en la mayoría de los casos, y también debería estar correctamente indexado. Digo en teoría porque no notará gran parte de una diferencia de rendimiento hasta que llegue a un determinado umbral de números/fechas. –