SQL - Ejecutar AVG con dos o más tablas

 
Vista:

Ejecutar AVG con dos o más tablas

Publicado por Oscar (2 intervenciones) el 10/11/2009 14:11:21
Hola, tengo la siguiente instrucción SQL y me da error de uso de la función agregada:

SELECT artic.codart, mrktg.codart, avg(preven) as precio_medio
FROM mrktg, artic
wHERE mrktg.codart=artic.codart

He probado con Union, Inner Join, Full Inner Join y todo lo inimaginable y lo único que se me ocurre es que AVG no puede ejecutarse directamente en una única sentencia SQL. sobre dos tablas.

Los campos y las tablas son correctos, así como la relación entre las tablas.
Si alguien me puede confirmar esto se lo agradezco.

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ejecutar AVG con dos o más tablas

Publicado por dcamre80 (4 intervenciones) el 10/11/2009 16:23:18
Hola.
Ese error de función agregada te lo manda por que siempre que ocupes funciones donde agrupas una operación tal como AVG, SUM, etc. tienes que agregar un group by
p.ej.

SELECT artic.codart, mrktg.codart, avg(preven) as precio_medio
FROM mrktg, artic
wHERE mrktg.codart=artic.codart
GROUP BY artic.codart, mrktg.codart

SI te fijas solo agrupas los campos en los que no se está haciendo alguna operación de agrupación..
Espero te sirva
Saludos
Dianet
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ejecutar AVG con dos o más tablas

Publicado por Oscar (2 intervenciones) el 11/11/2009 13:57:14
Gracias, ya funciona, por las pruebas que he hecho veo que se debe ordenador por todos los campos de select menos el de la función avg, min.max...

Debe ser cosa del álgebra relacional y de conjuntos... en fin, gracias de nuevo por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar