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

Varias agrupaciones SUM con Group by

Estas en el tema de Varias agrupaciones SUM con Group by en el foro de SQL Server en Foros del Web. Buenas, Necesitaria crear una consulta con la que pudiera mostrar un sumatorio de todos los registros que estan en un estado determinado y tambien mostrar ...
  #1 (permalink)  
Antiguo 23/09/2014, 13:16
 
Fecha de Ingreso: febrero-2011
Mensajes: 89
Antigüedad: 13 años, 9 meses
Puntos: 1
Varias agrupaciones SUM con Group by

Buenas,

Necesitaria crear una consulta con la que pudiera mostrar un sumatorio de todos los registros que estan en un estado determinado y tambien mostrar los totales repartidos por paises del total de registros obtenidos

Ejemplo:
Tabla_Registro: idRegistro,idpaisFK,idState
Tabla_Paises: valores,idPais

Es decir, un sum total de registros agrupados por estados y acontinuación una columna por cada pais mostrando el valor que representa cada pais sobre el total de ese estado

En Proceso 15 España 7 italia7 Brasil 1

Cualquiera que me pueda ayudar a plantearlo se lo agradezco

Gracias!
  #2 (permalink)  
Antiguo 23/09/2014, 14:42
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, 3 meses
Puntos: 774
Respuesta: Varias agrupaciones SUM con Group by

sencillo con un



Código SQL:
Ver original
  1. SELECT CASE WHEN estado='proceso' THEN SUM(1) END AS proceso,
  2. CASE WHEN estado='cerrado' THEN SUM(1) END AS cerrado,
  3. CASE WHEN pais='brasil' THEN SUM(1) END AS brasil,
  4. CASE WHEN pais='argentina' THEN SUM(1) END AS argentina
  5. GROUP BY estado,pais
un ejemplo de tus datos ayudaria mejor :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 23/09/2014, 16:14
 
Fecha de Ingreso: febrero-2011
Mensajes: 89
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Varias agrupaciones SUM con Group by

Muchas gracias por la ayuda Libras

case when podría ser una solucion pero necesitaría que por cada agrupación de la consulta principal me vaya poniendo los valores pertenecientes de cada pais para no poner todos los paises en la consulta por que son bastantes y puede que metan más


No se como meter una tabla aqui en condiciones pero a ver si me hago entender con tablas
1º Estados
2º paises con registros

cada registro en paises puede estar en un estado necesitaria sacar los totales por estado y el valor que representa cada pais en ese total de estado

ejemplo:

total 20 registros en proceso - italia 10 - españa 10 .....
Es decir debería poner en llos nombre de columnas el pais que esta haciendo el sumatorio pero si en especificarlo directamente, sino que lo vaya colocando desde la consulta dinamicamente

No se si he explicado un poco mejor el problema


muchas gracias
  #4 (permalink)  
Antiguo 23/09/2014, 16:21
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, 3 meses
Puntos: 774
Respuesta: Varias agrupaciones SUM con Group by

si se puede pero tienes que especificarlo en algun momento no se puede hacer "magicamente" podrias usar un query dinamico y armar la consulta como la necesitas ;)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 23/09/2014, 16:34
 
Fecha de Ingreso: febrero-2011
Mensajes: 89
Antigüedad: 13 años, 9 meses
Puntos: 1
Respuesta: Varias agrupaciones SUM con Group by

Gracias libras

Parece que estoy suponiendo que es magicamente por que no tengo ni idea de como solventar esto.

¿Se tendría que hacer con un cursor o por donde puedo tirar para crearlo dinamicamente?

Gracias.

Etiquetas: columna, group, sum, tabla, valor
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 08:22.