'ROUND' no esta definida en la expresión

Aver tengo en vb6 una consulta que es la siguiente:
Adodc1. RecordSource = " SELECT ROUND(AVG(n1), 0), AVG(n2), AVG(n3), AVG(n4), AVG(n5), AVG(n6), AVG(c) FROM resultados"
Adodc1. Refresh
Y me sale el error ya mencionado, no lo entiendo ¿Qué tengo una version antigua de sql o que? Si alguien me puede decir que es lo que pasa se lo agradecería.
Respuesta
1
La versión de SQL esta bien. Aunque no indicas de que base de datos se trata :-)
La explicación es, que el uso de funciones de agregación de datos exige que todos los campos mencionados en la cláusula SELECT sean parámetros de función de agregación o que estén incluidos en la cláusula GROUP BY.
Piensa en esto:
Si ejecutamos tu sentencia
SELECT ROUND(AVG(n1),0),
AVG(n2),
AVG(n3),
AVG(n4),
AVG(n5),
AVG(n6),
AVG(c)
FROM resultados
Por partes,
SELECT ROUND(AVG(n1),0) FROM resultados
Devolverá un registro por cada registro de la tabla resultados
y
SELECT
AVG(n2),
AVG(n3),
AVG(n4),
AVG(n5),
AVG(n6),
AVG(c)
FROM resultados
Devolverá un único registro, conteniendo la promedia de los valores en cada columna.
En definitiva, el único problema de tu SQL es que no te devuelve el mensaje de error completo. Debería de ser algo como "expresión no definida en la cláusula GROUP BY"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas