ejercicios sql

Iniciado por m@o_614, 26 Mayo 2013, 03:51 AM

0 Miembros y 1 Visitante están viendo este tema.

m@o_614

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





#!drvy

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


m@o_614

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

Saberuneko

#3
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;