SQL - Consulta anidada con relacion a la consulta padre

 
Vista:

Consulta anidada con relacion a la consulta padre

Publicado por akhasis (8 intervenciones) el 10/05/2010 14:54:19
Hola,

estoy realizando una consulta que, a partir de unas tablas con tiendas, periodos, productos y ventas, me devuelve la media de ventas de cada producto para un determinado periodo.

Bueno, esa es la idea. El problema es que no consigo que me devuelva la media PARA CADA TIENDA, sino que me devuelve una media total. Mi consulta simplificada es la siguiente:

SELECT nombre_producto,
(SELECT AVG(resultado_productos)
FROM (SELECT SUM( productos ) AS resultado_productos
FROM `PRODUCTOS`
WHERE fecha_inicio = fecha_hoy
AND fecha_fin = fecha_siguiente_periodo
GROUP BY tienda
) AS tbl_suma
) AS media
GROUP BY producto

Insisto en que he simplificado mucho el ejemplo, para que fuera facil de comprender.

El caso es el resultado que me devuelve como media me devuelve la media de TODOS los productos, y por tanto es igual en todas las líneas del resultado de la consulta.

Lo que quiero es que en cada línea me devuelva la media del producto con nombre "nombre_producto".

Espero haberme explicado, y que podáis darme una solución.

Gracias y un saludo.
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

RE:Consulta anidada con relacion a la consulta pad

Publicado por Leonardo Josue (1173 intervenciones) el 10/05/2010 16:36:45
Buenos días Akhasis:

Sería conveniente que pusieras cómo es la estructura de tus tablas y algunos registros de ejemplo para poder armar la consulta, porque sinceramente me resultó muy confusa el ejemplo que pusiste, y no pude determinar cuál es el error, pues me falta la información.

Te pediría entonces que extiendas un poco más tu explicación para poder ayudarte.

Saludos.
Leo.
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:Consulta anidada con relacion a la consulta pad

Publicado por akhasis (8 intervenciones) el 11/05/2010 14:20:00
Hola Leonardo Josué,

estaba redactándote la respuesta, y al crear las tablas para simplificar mi ejemplo se me ha ocurrido una posible solución. Voy a probarla y, tanto si mi solución ha sido correcta como si no, te digo cómo me ha ido.

Gracias por tu atención, un saludo
akhasis
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:Consulta anidada con relacion a la consulta pad

Publicado por akhasis (8 intervenciones) el 11/05/2010 17:18:47
Hola!!!

tras intentar hacer un ejemplo simplificado para que estuviera más clara mi pregunta, se me ocurrieron un par de ideas que me hicieran acercarme más al resultado deseado, pero todavía me quedan unos (espero que pequeños) ajustes con los que espero que me ayudéis.

He puesto la consulta que no consigo que me resulte correctamente, así como la consulta que crea las tablas necesarias para llevarla a cabo, en la url que acompaña a mi nick en este mensaje: http://pastebin.com/kxqwC3v2

La consulta devuelve una columna con los datos usados en la fórmula (la columna se llama datos_usados). Esta consulta contiene datos de tipo (id_centros, resultado, objetivo_mejora, pesos):

# 19, 5.5, 5, 100
# 19, 9.25, 5, 100
# 19, 7.81, 5, 100
# 20, 5.5, 5, 100
# 20, 9.25, 5, 100
# 21, 9.25, 5, 100
# 21, 7.81, 5, 100
# 21, 5.5, 5, 100
...

Pues bien, lo que quiero que me devuelva la consulta es, en una columna, la media de los resultados de cada id_centro. Es decir, para el centro 19, el resultado sería
5.5/ 5*100 +
9.25/5*100 +
7.81/5*100

de la misma manera se calcularía el resultado de cada centro, y, a continuación, realizar la media de todos los resultados.

Dicho de otra manera, el problema lo tengo a la hora de sumar los resultados de cada centro por separado y crear la media del resultado de estas sumas.

Es necesario realizarlo en una sola consulta (aunque tenga subconsultas) porque en algunos casos, después es necesario ordenarlo por el resultado de ese campo.

Espero que, a pesar de lo enrevesado de la consulta y lo complicado del caso, haya sido capaz de exponer el tema lo más claro posible.

Gracias por soportar esta parrafada, y por vuestra atención.

Un saludo,
akhasis
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