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

agrupar resultados en sql server

Estas en el tema de agrupar resultados en sql server en el foro de SQL Server en Foros del Web. Buenas a todos los foreros En Mysql habitualmente usaba una funcion que se denomina GROUP CONCAT para agrupar resultados en una sola consulta Tengo las ...
  #1 (permalink)  
Antiguo 02/06/2011, 09:37
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 14 años, 11 meses
Puntos: 27
agrupar resultados en sql server

Buenas a todos los foreros

En Mysql habitualmente usaba una funcion que se denomina GROUP CONCAT para agrupar resultados en una sola consulta

Tengo las siguiente tabla:

CAMPOS
COD_FOR
COD_CAM
COD_ETI

ETIQUETAS:
COD_ETI
NOM_ETI

Necesito hacer una consulta para traer el listado de campos que existe en cada etiqueta, todo en la misma consulta

es decir que salga algo como esto:

ETIQUETA 1 ---- CAMPOA, CAMPOB, CAMPOC

ETIQUETA 2 -----CAMPOD, CAMPOE, CAMPOF

Os dejo un enlace como se ven los resultados (pero en MySQL)

http://www.syntaxerror.es/2006/11/20...-group_concat/

Que función en SQL Server tiene un funcionamiento parecido?

Agradezco me puedan ayudar o indicar de que otra forma se podria hacer el query.....Gracias
  #2 (permalink)  
Antiguo 02/06/2011, 09:47
 
Fecha de Ingreso: julio-2010
Mensajes: 90
Antigüedad: 13 años, 8 meses
Puntos: 0
Información Respuesta: agrupar resultados en sql server

Lo que necesitas se usa con Group By.-

Ejemplo.

Select Count(1), campo_rut from COMPRAS group by campo_rut

Esta consulta te contaria Cuantas veces se encuentra un rut en la tabla compras y te lo agrupa por el rut respectivo.-


Resultado.

Count ............. campo_rut

3 ............. 1-9
4 ............. 99421783-4
5 ............. 17314457-2
56 ............. 9421793-5
38 ............. 9-1
  #3 (permalink)  
Antiguo 02/06/2011, 10:12
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 2 meses
Puntos: 447
Respuesta: agrupar resultados en sql server

Hola Oscarbt:

Lamentamblemente SQL Server no implementa nada parecido al GROUP_CONCAT de MySQL, sin embargo, tiene una funcionalidad tipo recursividad que pocos DBMS manejan, sería más o menos así:

Código SQL:
Ver original
  1. DECLARE @CAMPOS TABLE (COD_ETI INT, COD_CAM VARCHAR, NOM_CAMPO VARCHAR(15))
  2. DECLARE @CONCATENA VARCHAR(MAX)
  3. INSERT INTO @CAMPOS VALUES (1, 'A', 'CAMPOA')
  4. INSERT INTO @CAMPOS VALUES (1, 'B', 'CAMPOB')
  5. INSERT INTO @CAMPOS VALUES (1, 'C', 'CAMPOC')
  6. SELECT * FROM @CAMPOS
  7. SET @CONCATENA = '';
  8. SELECT @CONCATENA = @CONCATENA + NOM_CAMPO + ',' FROM @CAMPOS
  9. SELECT SUBSTRING(@CONCATENA, 1, LEN(@CONCATENA)-1) CONCATENA


Sería cuestión de que crear una función con esta funcionalidad e invocarla al momento de hacer el select.

Checa este post

http://www.forosdelweb.com/f87/como-...-campo-389466/

Ahí está implementada, sería cuestión de que la adecues a tus tablas y listo.

Saludos
Leo.
  #4 (permalink)  
Antiguo 02/06/2011, 10:58
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 14 años, 11 meses
Puntos: 27
Respuesta: agrupar resultados en sql server

Ok muchas gracias.....

Etiquetas: agrupar, resultados, server, sql
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 19:09.