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

Suma help

Estas en el tema de Suma help en el foro de SQL Server en Foros del Web. Hola tengo una duda, es que estoy haciendo una consulta en la cual quiero sumar todos las calificaciones y sacar el promedio de un campo ...
  #1 (permalink)  
Antiguo 09/08/2007, 12:08
 
Fecha de Ingreso: marzo-2006
Mensajes: 110
Antigüedad: 18 años, 1 mes
Puntos: 0
Suma help

Hola tengo una duda, es que estoy haciendo una consulta en la cual quiero sumar todos las calificaciones y sacar el promedio de un campo que se llama calificacion, ya hice la funcion de sum pero no me da nada, si hago la de count me cuenta todos los campos de calificacion y no los registros, que es lo que me interesa, les anexo mi codigo, gracias y saludos

select sum(calificacion)as promedio from calificacion where alumno='RAGM860722MAS'* //*Nota es la clave del alumno
  #2 (permalink)  
Antiguo 09/08/2007, 18:37
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Re: Suma help

select sum(calificacion) as promedio / (select count(calificacion) from calificacion where alumno='RAGM860722MAS')
from calificacion where alumno='RAGM860722MAS'

¿Sera?
  #3 (permalink)  
Antiguo 10/08/2007, 06:51
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Re: Suma help

Para obtener el promedio de un campo existe una funcion proporcionada por el sistema.... solo hay que verificar que no halla campos nulos o bien decidir que opcion nos conviene mas ya que las funciones agregadas no consideran registros con valores nulos....

Anexo ejemplo...
Código:
 
If object_id('tempdb..#tmpTable') is not null Drop Table #tmpTable

create table #tmpTable  (valores decimal(5,2))


insert into #tmpTable values (null)

insert into #tmpTable values (983.36)
insert into #tmpTable values (354.78)
insert into #tmpTable values (485.63)
insert into #tmpTable values (156.61)

SELECT AVG(isnull(valores,0)) Promedio  -- Considerando valor nulo como cero
From #tmpTable


SELECT AVG(valores) Promedio   -- Sin considerar valor nulo 
From #tmpTable

If object_id('tempdb..#tmpTable') is not null Drop Table #tmpTable
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
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:12.