Buenas tardes Maestros.
Mi duda es la siguiente:
Tengo en una herramienta de registro de calificaciones una función para el cálculo del promedio de tres notas:
Public Function PromedioNotas(Nota1P, Nota2P, Nota3P)
If (Abs(IsNumeric(Nota1P)) + Abs(IsNumeric(Nota2P)) + Abs(IsNumeric(Nota3P))) = 0 Then
PromedioNotas = Null
Else
PromedioNotas = Round((Nz(Nota1P, 0) + Nz(Nota2P, 0) + Nz(Nota3P, 0)) / (Abs(IsNumeric(Nota1P)) + Abs(IsNumeric(Nota2P)) + Abs(IsNumeric(Nota3P))), 4)
End If
End Function
He creado una consulta de totales para el calculo del promedio de las tres calificaciones en donde incluyo dicha función en un campo calculado agrupado por estudiante : (esta consulta es base para varios reportes)
PromedioCalificaciones: Promedio(PromedioNotas([Nota1P];[Nota2P];[Nota3P]))
Aunque el cálculo lo hace bien noto que la consulta se demora en ejecutarse mas de 20 segundos pero si quito el campo calculado sólo demora fracciones de segundo.
Intenté quitar este campo calculado de la consulta y en lugar de él poner un campo calculado (independiente) en el reporte pero el problema que se me presenta es que como el promedio es un campo calculado independiente pues no podría hacer ordenamientos por este campo.
¿Qué estoy haciendo mal?
Muchas gracias por su apoyo!
un abrazo desde Colombia