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

Suma con datos semejantes

Estas en el tema de Suma con datos semejantes en el foro de SQL Server en Foros del Web. Buenas tardes, Tengo la siguiente consulta: Código: SELECT NROMATRGRUPO, NROGRUPOS, IDITEMRELACION, IDEVALUACION, STRITEMRELACION, STREVALUACION, INTANIO, INTPERIODO, IDPERSONAEVALUADA, IDGRUPO FROM dbo.TBLTMPSUMPROMPREG360 GROUP BY NROMATRGRUPO, NROGRUPOS, IDITEMRELACION, ...
  #1 (permalink)  
Antiguo 01/07/2011, 12:17
Avatar de kejos  
Fecha de Ingreso: septiembre-2005
Mensajes: 100
Antigüedad: 18 años, 7 meses
Puntos: 0
Pregunta Suma con datos semejantes

Buenas tardes,
Tengo la siguiente consulta:
Código:
SELECT     NROMATRGRUPO, NROGRUPOS, IDITEMRELACION, IDEVALUACION, STRITEMRELACION, STREVALUACION, INTANIO, INTPERIODO, IDPERSONAEVALUADA, 
                      IDGRUPO
FROM         dbo.TBLTMPSUMPROMPREG360
GROUP BY NROMATRGRUPO, NROGRUPOS, IDITEMRELACION, IDEVALUACION, STRITEMRELACION, STREVALUACION, INTANIO, INTPERIODO, IDPERSONAEVALUADA, 
                      IDGRUPO
HAVING      (IDEVALUACION <> 8) AND (IDEVALUACION <> 32) AND (IDEVALUACION <> 34) AND (IDITEMRELACION = 520) AND (IDEVALUACION = 23)
Con el siguiente resultado:
NroMatric NroGrupos IdItemRelacion IdEValuacion ItemRelacion Evaluacion Año Periodo IdPersonaEvaluada IdGrupo
27 2 520 23 Sistemas y Señales EVALUACIÓN DEL PROCESO ENSEÑANZA APRENDIZAJE POR PARTE DEL ESTUDIANTE-ASIGNATURA SIN LABORATORIO 2011 1 21449 18226
27 2 520 23 Sistemas y Señales EVALUACIÓN DEL PROCESO ENSEÑANZA APRENDIZAJE POR PARTE DEL ESTUDIANTE-ASIGNATURA SIN LABORATORIO 2011 1 21449 18227
Resulta que yo necesito sumar los valores del campo NroMatric en dicha consulta La suma la realizo en la consulta así:
Código:
SELECT     SUM(DISTINCT NROMATRGRUPO) AS Expr1, NROGRUPOS, IDITEMRELACION, IDEVALUACION, STRITEMRELACION, STREVALUACION, INTANIO, INTPERIODO, 
                      IDPERSONAEVALUADA, IDGRUPO
FROM         dbo.TBLTMPSUMPROMPREG360
GROUP BY NROMATRGRUPO, NROGRUPOS, IDITEMRELACION, IDEVALUACION, STRITEMRELACION, STREVALUACION, INTANIO, INTPERIODO, IDPERSONAEVALUADA, 
                      IDGRUPO
HAVING      (IDEVALUACION <> 8) AND (IDEVALUACION <> 32) AND (IDEVALUACION <> 34) AND (IDITEMRELACION = 520) AND (IDEVALUACION = 23)
Dando cómo resultado la misma tabla pero yo necesito relamente que me sume los 2 valores que son igual a 27.
Mi gran problema radica en que si le quito a la consulta el idgrupo me suma solamnete uno de los 2 valores porque los demás campos son iguales.
Que puedo hacer para solucionar mi inconveniente.
DE antemano muchas gracias por toda la ayuda que me puedan brindar
__________________
Kelly Johana:si:
  #2 (permalink)  
Antiguo 01/07/2011, 13:41
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Suma con datos semejantes

Hola kejos:

Al estar agrupando por todos los campos tienes que verificar el último, según los datos que pones tienes lo siguiente

Código:
idGrupo
----------
18226
18227
Si observas son dos registros distintos, por lo tanto no puede ser la agrupación... aquí tienes que revisar si necesitas realmente este campo o si por el contrario puedes quitarlo del select y por lo tanto también del group by.

También podrías cambiar esto

Código:
(IDEVALUACION <> 8) AND (IDEVALUACION <> 32) AND (IDEVALUACION <> 34)
Por esto

Código:
IDEVALUACION not in (8, 32, 34)
Saludos
Leo.
  #3 (permalink)  
Antiguo 01/07/2011, 13:48
Avatar de kejos  
Fecha de Ingreso: septiembre-2005
Mensajes: 100
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Suma con datos semejantes

Hola Leo!
Mil gracias por tu respuesta efectivamente cómo dices tengo ese campo diferente y si lo quito de la consulta así:
SELECT NROMATRGRUPO, NROGRUPOS, IDITEMRELACION, IDEVALUACION, STRITEMRELACION, STREVALUACION, INTANIO, INTPERIODO, IDPERSONAEVALUADA
FROM dbo.TBLTMPSUMPROMPREG360
WHERE (IDEVALUACION NOT IN (8, 32, 34))
GROUP BY NROMATRGRUPO, NROGRUPOS, IDITEMRELACION, IDEVALUACION, STRITEMRELACION, STREVALUACION, INTANIO, INTPERIODO, IDPERSONAEVALUADA
HAVING (IDITEMRELACION = 520) AND (IDEVALUACION = 23)
Tomando en cuenta también tu sugerencia de usar el not in el resultado me muestra lo siguiente:
NroMatric NroGrupos IdItemRelacion IdEValuacion ItemRelacion Evaluacion Año Periodo IdPersonaEvaluada
27 2 520 23 Sistemas y Señales EVALUACIÓN DEL PROCESO ENSEÑANZA APRENDIZAJE POR PARTE DEL ESTUDIANTE-ASIGNATURA SIN LABORATORIO 2011 1 21449
Con este resultado si sumo me daria 27 y no 54 cómo me debeb dar realmente porque son 2 grupos de 27 estudiantes cada uno.
:(
No se cómo solucionar mi problema de que la consulta me muestre los 2 registros de los grupos sin el idgrupo.
Cualquier ayuda se agradece de antemano
__________________
Kelly Johana:si:

Etiquetas: suma
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 01:17.