Jardineria - Consultes multitaula - Composició interna
Resol totes les consultes utilitzant la sintaxis SQL. Utilitza NATURAL JOIN, JOIN USING o JOIN ON, la que millor s'adapti a cada consulta.
-
Obté una llista amb el nom de cada client i el nom i cognoms del seu representant de vendes.
Possible solució
SELECT c.nombre_cliente, CONCAT_WS(' ', e.nombre, e.apellido1, e.apellido2) nombre_representante FROM cliente c JOIN empleado e ON (c.codigo_empleado_rep_ventas = e.codigo_empleado); -
Mostra el nom dels clients que hagin realitzat pagaments, amb el nom dels seus representants de vendes.
Possible solució
SELECT DISTINCT c.nombre_cliente, CONCAT_WS(' ', e.nombre, e.apellido1, e.apellido2) nombre_representante FROM cliente c NATURAL JOIN pago p JOIN empleado e ON (c.codigo_empleado_rep_ventas = e.codigo_empleado);Al fer un JOIN amb una altra taula de costat Molts, podem arribar a tenir files repetides
-
Retorna el nom dels clients que han fet pagaments i el nom dels seus representants, amb la ciudad de l'oficina a la que pertany el representant.
Possible solució
SELECT DISTINCT c.nombre_cliente, CONCAT_WS(' ', e.nombre, e.apellido1, e.apellido2) nombre_representante, o.ciudad FROM cliente c NATURAL JOIN pago p JOIN empleado e ON (c.codigo_empleado_rep_ventas = e.codigo_empleado) JOIN oficina o USING (codigo_oficina); -
Retorna el nom dels clients que no hagin fet pagaments i el nom dels seus representants, amb la ciudad de l'oficina a la que pertany el representant. (
LEFT or RIGHT)Possible solució
SELECT c.nombre_cliente, e.nombre, apellido1, apellido2, o.ciudad FROM cliente c NATURAL LEFT JOIN pago p JOIN empleado e ON (c.codigo_empleado_rep_ventas = e.codigo_empleado) JOIN oficina o USING (codigo_oficina) WHERE forma_pago IS NULL; -
Llista l'adreça de les oficines que tinguin clients a
Fuenlabrada.Possible solució
SELECT o.linea_direccion1, o.linea_direccion2, o.ciudad FROM oficina o NATURAL JOIN empleado e JOIN cliente c ON (c.codigo_empleado_rep_ventas = e.codigo_empleado) WHERE c.ciudad = 'Fuenlabrada' -
Retorna el nom dels clients i el nom dels seus representants, amb la ciudad de l'oficina a la que pertany el representant.
Possible solució
SELECT c.nombre_cliente, e.nombre, e.apellido1, e.apellido2, o.ciudad FROM empleado e JOIN cliente c ON (c.codigo_empleado_rep_ventas = e.codigo_empleado) JOIN oficina o USING(codigo_oficina) -
Retorna una llista amb el nom dels empleats, amb el nom dels seus cap.
Possible solució
SELECT e.nombre, e.apellido1, e.apellido2, j.nombre, j.apellido1, j.apellido2 FROM empleado e JOIN empleado j ON (e.codigo_jefe = j.codigo_empleado) -
Retorna una llista que mostri el nom de cada empleat, el nom del seu cap i el nom del cap del seu cap.
Possible solució
SELECT e.nombre, e.apellido1, e.apellido2, j.nombre, j.apellido1, j.apellido2, jj.nombre, jj.apellido1, jj.apellido2 FROM empleado e JOIN empleado j ON (e.codigo_jefe = j.codigo_empleado) JOIN empleado jj ON (j.codigo_jefe = jj.codigo_empleado) -
Retorna el nom dels clients als que no se'ls ha entregat a temps alguna comanda. Afegeix els camps de data d'entrega i data esperada d'entrega.
Possible solució
SELECT nombre_cliente, fecha_entrega, fecha_esperada FROM cliente NATURAL JOIN pedido WHERE fecha_entrega > fecha_esperada -
Retorna una llista de les diferents games de producte que ha comprat cada client.
Possible solució
SELECT DISTINCT gama, nombre_cliente FROM cliente NATURAL JOIN pedido NATURAL JOIN detalle_pedido NATURAL JOIN producto