Título: ejercicios sql Publicado por: m@o_614 en 26 Mayo 2013, 03:51 am Saludos
Tengo el siguiente una base de datos compuesta por dos tablas, una que se llama fabricante(codigo,nombre) y otra que se llama articulos(codigo,nombre,precio,fabricante)y tengo un problema que dice: Obtener los nombres de los fabricantes que ofrezcan productos cuyo precio medio sea mayor o igual a 170 y me pone la solucion que es esta: SELECT F.Nombre, AVG(Precio) FROM ARTICULOS A, Fabricantes F WHERE A.Fabricante = F.Codigo GROUP BY F.Nombre HAVING AVG (Precio)>=170 pero no le entiendo a partir de la linea 3, si alguien me pudiera explicar le agradeceria mucho Título: Re: ejercicios sql Publicado por: #!drvy en 26 Mayo 2013, 04:43 am SELECIONAR F.Nombre, Promedio(Precio)
DE ARTICULOS como A, Fabricantes como F DONDE A.Fabricante es_el_mismo_que F.Codigo AGRUPAR POR F.Nombre TENIENDO Promedio(Pecio) mayor_o_igual_a 170. Saludos Título: Re: ejercicios sql Publicado por: m@o_614 en 27 Mayo 2013, 02:12 am Muchas gracias ya estoy comprendiendo mejor, una ultima duda, cuando tengo dos tablas una se llama Piezas y tiene los campos codigo que es Pk(llave primaria) y nombre y tengo otra tabla que dice suministra que tien los campos(precio y CodigoPieza que es FK(llave foranea)). Si tengo un problema que me dice
Obtener el precio medio al que se nos suministran las piezas la respuesta seria algo asi???? SELECT CodigoPieza,AVG(Precio) FROM Suministra WHERE y aqui es donde me trabo Título: Re: ejercicios sql Publicado por: Saberuneko en 3 Junio 2013, 20:11 pm Bueno, primero... Estás sacando un valor medio, por lo que en Código de pieza no lo necesitas. Estás sacando la media de todas sin más.
Por lo tanto te quedaría algo tal que: SELECT AVG(Precio) FROM Suministra La condición where la puedes añadir o no, dependiendo de si la necesitas o no. Aquí le estarías poniendo eso. SELECCIONAR Media de Precios DE Suministra A menos que cada pieza tenga varias entradas, en tal caso sería: (Recuerda que una PK no puede estar repetida, pero una FK sí puede) SELECT CodigoPieza, AVG(Precio) FROM Suministra GROUP BY CodigoPieza; Lo que te haría sería hacer medias agrupadas por piezas (pero no la media total)... SELECCIONAR Codigo_Pieza, Media_de_Precios DE Suministra AGRUPAR POR Codigo_Pieza; |