ayuda con estas consultas¿?

Iniciado por xGENiiiuS, 6 Abril 2016, 20:05 PM

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

xGENiiiuS

Buenas estaba estudiando gbd y la verdad no consigo que salga lo que neceisot en las consultas paso los datos:
---------------------------------------- modelo relacional -------------------------------------------

provincias( codpro, nombre)
pueblos( codpue, nombre, provincia)
clientes( codcli, nombre, direccion, codpostal, pueblo)
vendedores( codven, nombre, direccion, codpostal, pueblo, jefe)
articulos(codart, descrip, precio, stock, stock_min )
facturas( codfac, fecha, cliente, vendedor, iva, dto )
lineas_fac(factura, linea, cant, articulo, precio, dto )

--------------------------------- enunciado consultas ----------------------------------------------

a)   Obtener el código de vendedor, nombre y el número de clientes a los que ha realizado factura cada uno de los vendedores. ( esta es la que esoty haciendo y no hay manera)

select v.codven "cod_vendedor", v.nombre "nombre_vendedor", count(f.cliente) "numero clientes"
from vendedores v, facturas f
where f.cliente = v.codven;
group by v.codven;

b)   El código y nombre de aquellas provincias en las que no hubo ventas de los vendedores residentes en dichas provincias durante el presente año.

c)   Código y nombre de aquellos clientes que han facturado a menos de 3 vendedores distintos residentes en su misma provincia.

d)   Mostrar el mejor vendedor de las provincias de Almería y Huelva para el año anterior al actual.


crisoof

A)la primera respuesta esta mal, tienes que hacer un join entre 3 tablas, clientes, vendedores y facturas las condiciones de igualdad deben ser las correctas, tu estas igualando el cod_vendedor con el cod_cliente

b)la pregunta b tbn son 3 tablas, las tablas son vendedores, provincias y pueblos

c) tienes que cruzar las tablas cliente,factura,pueblo, provincia

d) aqui tengo una duda a que se refiere con linea_factura

dependiendo de la respuesta tendrias que cruzar vendedor,facturas,pueblo,provincia

o

vendedor,lineas_fac,facturas,pueblo,provincia


Exito en la resolucion, pregunta si no entiendes algo saludos

xGENiiiuS

gracias la primera ya me ha salido :

a) select v.codven, v.nombre, count(f.cliente)
   from vendedores v, facturas f
   where v.codven = f.cliente
   group by v.codven

las demas probare luego mas tarde muchas gracias amigo :)

crisoof

tu primera consulta esta mal, deberías igualar



    select v.codven,
           v.nombre,
           count(f.cliente)
      from vendedores v, facturas f
     where v.codven = f.VENDEDOR
  group by v.codven


la query que tu tienes no tiene bien la condicion, igualas v.codven con f.cliente

deberias igualar el codven con el codigo de vendedor en este caso vendedor de la tabla factura, si no es el mismo dato que en la tabla vendedor debes hacer el join que te indique antes, cruzar 3 tablas

tambien te aconsejaria uses para hacer un join los inner join para que puedas programar mas ordenado y no te compliques mas adelante

saludos