Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Reporte para contar registro

Estas en el tema de Reporte para contar registro en el foro de SQL Server en Foros del Web. Buenos días alguien sabe como puedo hacer la siguiente consulta. Tengo estos datos de una consulta agrupada id Lugar FechaInicio FechaFin 1 a '2012-07-12 00:00:31.000' ...
  #1 (permalink)  
Antiguo 08/08/2012, 10:23
 
Fecha de Ingreso: agosto-2012
Mensajes: 3
Antigüedad: 11 años, 9 meses
Puntos: 0
Reporte para contar registro

Buenos días alguien sabe como puedo hacer la siguiente consulta.

Tengo estos datos de una consulta agrupada

id Lugar FechaInicio FechaFin
1 a '2012-07-12 00:00:31.000' '2012-07-12 00:00:47.000'
1 b '2012-07-12 00:00:47.000' '2012-07-12 00:01:13.000'
1 b '2012-07-12 00:01:13.000' '2012-07-12 00:01:15.000'
1 a '2012-07-12 00:01:15.000' '2012-07-12 00:01:16.000'
1 a '2012-07-12 00:01:16.000' '2012-07-12 00:01:17.000'

Como hago para contar los vehiculos para que quede asi

Vehicle Count
a 2
b 1

Teniendo en cuenta que con un count daría a 3 y b 1, pero da así ya que el carro a permanece en el mismo lugar es decir a.
  #2 (permalink)  
Antiguo 08/08/2012, 11:04
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Reporte para contar registro

ahi veo que a son 3 y b 2, como sabes que tienen que ser 2 y 1?? con los datos que pones no podria decirte que a son 2, tiene mas datos tu tabla, que filtros usas, cual es la logica de negocio?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 08/08/2012, 11:18
 
Fecha de Ingreso: agosto-2012
Mensajes: 3
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Reporte para contar registro

La lógicas es:

El carro X cuando prende almacena el lugar, la fecha y hora, de igual manera cuando se apaga, es decir que en primer registro a estuvo en el Lugar A, luego se fue para el Lugar B, después se fue para el lugar A y prendió el carro en el mismo lugar es decir que el count me cuenta 2, lo que quiero es que cuente 1 cuando se tiene un consecutivo.
  #4 (permalink)  
Antiguo 08/08/2012, 11:59
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Reporte para contar registro

el sig query saca lo que necesitas:

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. id INT,
  4. lugar VARCHAR(20),
  5. inicio datetime,
  6. fin datetime
  7. )
  8.  
  9. INSERT INTO #temp VALUES (1,'a','2012-07-12 00:00:31.000','2012-07-12 00:00:47.000')
  10. INSERT INTO #temp VALUES (1,'b','2012-07-12 00:00:47.000', '2012-07-12 00:01:13.000')
  11. INSERT INTO #temp VALUES (1,'b','2012-07-12 00:01:13.000', '2012-07-12 00:01:15.000')
  12. INSERT INTO #temp VALUES (1,'a','2012-07-12 00:01:15.000', '2012-07-12 00:01:16.000')
  13. INSERT INTO #temp VALUES (1,'a','2012-07-12 00:01:16.000', '2012-07-12 00:01:17.000')
  14.  
  15. SELECT COUNT(lugar) cuantos, lugar FROM (
  16. SELECT ntile(2) OVER(partition BY lugar ORDER BY lugar) AS rn, id,inicio,fin, lugar FROM #temp
  17. ) t1 WHERE rn=1 GROUP BY lugar

Ahora el problema la funcion ntile() necesita un parametro en este caso el 2 (segun tus datos de ejemplo) que va a contar cada par de registros consecutivos como 1 pero si lo pones con 3 entonces no funciona, no tienes mas datos en tu tabla??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 08/08/2012, 12:45
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Reporte para contar registro

funciona o no? es lo que buscabas? Minimo un gracias no??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 08/08/2012, 13:01
 
Fecha de Ingreso: agosto-2012
Mensajes: 3
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Reporte para contar registro

Amigo, pueden haber muchos más registro. Gracias por tu ayuda, estaré atento
  #7 (permalink)  
Antiguo 08/08/2012, 14:41
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Reporte para contar registro

investiga las funciones rank(), dense_rank y ntitle() es con las que puedes sacar lo que necesitas.....aunque se puede hacer un procedure para sacar el conteo ;) pero eso ya es mas trabajo asi que a investigarle amigo :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: registro, reporte
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:17.