PDA

Ver la Versión Completa : Consultas


agilaberte
04-04-2004, 12:47:42
Hola, tengo unas dudas sobre unas consultasen sql, si alguien me pueda hechar una manita, agradezco eternamente, el único problema es que necesito para hoy ¡!



Tengo una base de datos llamada COMERCIO que posee 5 tablas:



CENTROS

Código (clave primaria)

Ciudad

Zona



CLIENTES

Nif (clave primaria)

Razon_social

Dirección

Teléfono

Descuento



PEDIDOS

Numero (clave primaria)

Cod_producto

Fecha

Nif_cliente

Cod_vendedor

Unidades



PRODUCTOS

Codigo (clave primaria)

Componente

Descripción

Precio

Stock



VENDEDORES

Codigo (clave primaria)

Nombre

Edad

Cod_centro



Ahora necesito las siguientes consultas:



1. ¿En qué ciudades se han vendido placas base? ¿Cuántas unidades y de qué tipo (descripción) se han vendido? Ordena la salida por ciudad.



2..- Queremos premiar a aquellos clientes que nos han comprado impresoras por un valor mayor a 80 euros. Por cuestiones de organización interna nos interesa saber a qué zonas pertenecen esos clientes, quien ha sido el vendedor que ha realizado el pedido y qué tipo de impresora han comprado. A su vez también necesitamos el número de teléfono del cliente para llamarle y darle la enhorabuena. Queremos que los datos aparezcan ordenados de mayor a menor por el total pagado por cada cliente.



3.- El director de la empresa quiere un listado alfabético con todos los vendedores y el número de unidades vendidas por cada vendedor (incluso para aquellos vendedores que no tuvieron nunca ningún pedido).


4. Inventar una consulta bastante creativa.

Gracias !

__cadetill
04-04-2004, 13:42:54
veamos, lo primero de todo aconsejarte un libre de SQL, ya que no son demasiado complicadas estas consultas ;)

1.- dependerá si lo que sabemos es la descriocion o el codigo del producto

select c.ciudad, r.codigo, r.descripcion, count(*)
from pedidos p
inner join productos r on r.codigo = p.cod_prod
inner join vendedores v on v.codigo = p.cod_vend
inner join centros c on c.codigo = v.cod_centro
where r.descripcion like '%placas base%'
group by c.ciudad, r.codigo, r.descripcion
order by c.cuidad


2.-

select c.razon_social, c.telefono, v.nombre, t.zona, sum(p.unidades * s.precio)
from pedidos p
inner join clientes c on c.nif = p.nif_cli
inner join vendedores v on v.codigo = p.cod_vend
inner join centros t on t.codigo = v.cod_centro
inner join productos s on s.codigo = p.cod_prod
where s.descripcion like '%impresora%'
group by c.razon_social, c.telefono, v.nombre, t.zona
having sum(p.unidades * s.precio) > 80
order by 5


3.-

select v.nombre, sum(p.unidades)
from vendedores v
left outer join pedidos p on p.cod_vend = v.codigo
order by v.nombre


4.- Esta te la dejo a ti ;)

PD: los resultados no han sido probados, así que no se garantiza el 100% de su funcionamiento :p