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

SQL contar registros de una misma columna

Estas en el tema de SQL contar registros de una misma columna en el foro de SQL Server en Foros del Web. Hola amigos Tengo el siguiente problema que me tiene de muerte tengo, una tabla donde existe una columna con distintos registros en este caso códigos ...
  #1 (permalink)  
Antiguo 11/03/2013, 11:54
 
Fecha de Ingreso: noviembre-2006
Mensajes: 19
Antigüedad: 17 años, 5 meses
Puntos: 0
Exclamación SQL contar registros de una misma columna

Hola amigos

Tengo el siguiente problema que me tiene de muerte tengo, una tabla donde existe una columna con distintos registros en este caso códigos
Es una columna llamada códigos y tiene varios códigos separados por espacio
Columna códigos-> “I10 X20 B12 E55” lo que necesito es separar esos valores y contar cuantos códigos existen, ya logre pasar el primer inconveniente que es separa los códigos en varios columnas temporales llamada código1, codigo2,códigon…. Dependiendo de la cantidad de códigos, esto lo hice con Split sql, ahora me queda contar todos los códigos Que sean iguales y el otro problema es que los códigos no están en orden están desordenados y además no son del mismo tamaño ejem->
Columna códigos-> “I10 X20 B12 E55”
Columna códigos-> “T65 E55 I10 Z32”
Columna códigos-> “Z32 B12”

Actualmente lo que la SQL me retorna es

Cod1 Cod2 Cod3 Cod4
I10 X20 B12 E55
T65 E55 I10 Z32
Z32 B12 null null

Lo que necesito es que la sql me devuelva el conteo de códigos iguales
I10=2
X20=1
B12=2 ..etc
Es complejo y ya no se cómo tomar este problema e regoogleado pero no encuentro una solución, la BD no la diseñe yo, ya existía, espero me ayuden saludos.
  #2 (permalink)  
Antiguo 11/03/2013, 12: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: SQL contar registros de una misma columna

complejo complejo la verdad no...un poco de logica nada mas :P

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. codigo VARCHAR(20),
  4. codigo1 VARCHAR(20)
  5. )
  6.  
  7. INSERT INTO #temp VALUES ('I20','I21')
  8. INSERT INTO #temp VALUES ('I20','I21')
  9. INSERT INTO #temp VALUES ('I20','A1')
  10. INSERT INTO #temp VALUES ('IEE0','A2')
  11. INSERT INTO #temp VALUES ('IEE0','A3')
  12. INSERT INTO #temp VALUES ('IEE1','A3')
  13. INSERT INTO #temp VALUES ('IEE2','A3')
  14. INSERT INTO #temp VALUES ('IEE2','IEE2')
  15.  
  16.  
  17. SELECT SUM(total) total, codigo FROM(
  18. SELECT COUNT(codigo) AS total, codigo FROM #temp GROUP BY codigo
  19. UNION
  20. SELECT COUNT(codigo1) AS total, codigo1 FROM #temp GROUP BY codigo1
  21. ) t1 GROUP BY codigo
  22.  
  23. ----------------------Resultado----------------------
  24.  
  25. 1   A1
  26. 1   A2
  27. 3   A3
  28. 3   I20
  29. 2   I21
  30. 2   IEE0
  31. 1   IEE1
  32. 3   IEE2

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 11/03/2013, 13:13
 
Fecha de Ingreso: noviembre-2006
Mensajes: 19
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: SQL contar registros de una misma columna

gracias no sabia esto de las tablas temporales, como puedo meter esto en una consulta que ya tiene select where y otras cosas mas.
  #4 (permalink)  
Antiguo 11/03/2013, 13:20
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: SQL contar registros de una misma columna

digamos tienes un query de este tipo

select * from tabla1,tabla2,tabla3 where tabla1.campo=..........

y para meterlo en una temporal:

select * into #temp from tabla1,tabla2,tabla3 where tabla1.campo=..........

asi ya podrias manejar los datos de la temporal :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: columna, registro, registros, sql, tabla
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 13:44.