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

[SOLUCIONADO] Agrupar informacion

Estas en el tema de Agrupar informacion en el foro de SQL Server en Foros del Web. Hola que tal. Bueno el motivo de mi post es por la siguiente duda: Tengo en una tabla donde cuento con nombre de los Estados, ...
  #1 (permalink)  
Antiguo 03/05/2013, 10:04
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 16 años
Puntos: 58
Agrupar informacion

Hola que tal. Bueno el motivo de mi post es por la siguiente duda:

Tengo en una tabla donde cuento con nombre de los Estados, y necesito que se muestren agrupados los que son del norte y los que son del sur.

Ejemplo:

2 .- Norte
1 .- Sur

En mi tabla los tengo de la siguiente manera:

Region Estado
2 Baja California
2 Sonora
2 Monterrey
2 Cohahuila
1 Nayarit
1 Jalisco
1 Michoacan
1 Puebla

Y necesito que se muestren de la siguiente manera:

2.- Baja california, Sonora, Monterrey, Cohahuila
1.- Nayarit, Jalisco, Michoacan, Puebla

SELECT Region, Estado
FROM TablaEstados (NOLOCK)
ORDER BY Region DESC

Alguna idea para poder concatenarlos de la manera que los necesito

Se me ocurria agruparlos, pero no se muy bien como hacer la concatenacion.

Por su atencion, gracias.

Última edición por drako_darpan; 03/05/2013 a las 10:19
  #2 (permalink)  
Antiguo 03/05/2013, 10:35
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 3 meses
Puntos: 180
Respuesta: Agrupar informacion

Debes tener un campo, donde identifiiques que zona es SUR, CENTRO, NORTE, ¿la tienes? o es tu propia decision decir que YUCATAN pertenece al norte?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 03/05/2013, 10:45
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 16 años
Puntos: 58
Respuesta: Agrupar informacion

Hola, gracias por contestar iislas.

Bueno en la tabla solo se cuenta con esos campos ( Región, Estado ), puesto que el usuario captura la información y con eso se va llenando la tabla.

Si el usuario captura por ejemplo a YUCATAN como norte, se tendría que reflejar:

2.- Baja california, Sonora, Monterrey, Cohahuila, Yucatan
1.- Nayarit, Jalisco, Michoacan, Puebla

Pero al corregir el valor y ponerlo como sur, tiene que aparecer en los sur:

2.- Baja california, Sonora, Monterrey, Cohahuila
1.- Nayarit, Jalisco, Michoacan, Puebla, Yucatan

  #4 (permalink)  
Antiguo 03/05/2013, 10:59
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 2 meses
Puntos: 774
Respuesta: Agrupar informacion

Código SQL:
Ver original
  1. CREATE TABLE tabla
  2. (
  3. region INT,
  4. estado VARCHAR(20)
  5. )
  6.  
  7. INSERT INTO tabla VALUES (2,'Baja California')
  8. INSERT INTO tabla VALUES (2,'Sonora')
  9. INSERT INTO tabla VALUES (2,'Monterrey')
  10. INSERT INTO tabla VALUES (2,'Cohahuila')
  11. INSERT INTO tabla VALUES (1,'Nayarit')
  12. INSERT INTO tabla VALUES (1,'Jalisco')
  13. INSERT INTO tabla VALUES (1,'Michoacan')
  14. INSERT INTO tabla VALUES (1,'Puebla')
  15.  
  16.  
  17. DECLARE @groups AS VARCHAR(MAX)
  18. SELECT @groups=COALESCE(@groups + ',', '') + estado FROM tabla WHERE region=1
  19. print @groups
  20.  
  21.  
  22. CREATE FUNCTION fn_return_regions(@region INT)
  23. RETURNS VARCHAR(MAX)  WITH schemabinding  
  24. AS
  25. BEGIN
  26. DECLARE @groups AS VARCHAR(MAX)
  27. SELECT @groups=COALESCE(@groups + ',', '') + estado FROM #temp WHERE region=@region
  28. RETURN @groups
  29. END
  30. GO
  31.  
  32. SELECT region,fn_return_regions(region) FROM tabla GROUP BY region

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 03/05/2013, 11:17
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 16 años
Puntos: 58
Respuesta: Agrupar informacion

Muchas gracias a los 2 ( Libras e iislas ).

La respuesta que posteo Libras me sirve muy bien y es justamente lo que necesito.

Gracias por su tiempo
  #6 (permalink)  
Antiguo 03/05/2013, 12:19
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 3 meses
Puntos: 180
Respuesta: Agrupar informacion

¿Y que dije yo de diferente?

Por otro lado, deberías bajar la base de datos de SEPOMEX, esta mucho mas completa y no le das al usuario de cometer errores capa 9
__________________
MCTS Isaias Islas

Etiquetas: agrupar, informacion, select, 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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 00:57.