Jardineria - Consultes sobre una tabla
-
Retorna una llista amb el codi d'oficina i la ciutat on hi ha oficines.
Possible solució
SELECT codigo_oficina, ciudad FROM oficina; -
Retorna una llista amb la ciutat i el telèfon de les oficines d'
España.Possible solució
SELECT ciudad, telefono FROM oficina WHERE pais = 'España'; -
Retorna una llista amb el nom, cognoms i email dels empleats amb un cap amb un codi igual a
7.Possible solució
SELECT nombre, apellido1, apellido2, email FROM empleado WHERE codigo_jefe = 7; -
Retorna el nom del lloc de treball (puesto), nom, cognoms i email del
Director General.Possible solució
SELECT puesto, nombre, apellido1, apellido2, email FROM empleado WHERE puesto = 'Director General'; -
Retorna una llista amb el nom, cognoms i lloc de treball d'aquells empleats que no siguin
Representante Ventas.Possible solució
SELECT nombre, apellido1, apellido2, puesto FROM empleado WHERE puesto <> 'Representante Ventas'; -
Retorna una llista amb el nom dels clients i el nom i cognom del contacte, de tots els clients de
España.Possible solució
SELECT nombre_cliente, nombre_contacto, apellido_contacto FROM cliente WHERE pais = 'España'; -
Retorna una llista amb los diferents estats pels que pot passar una comanda.
Possible solució
SELECT DISTINCT estado FROM pedido; -
Retorna una llista amb el codi de client d'aquells clients que varen fer algun pagament el
2008. Tingues es compte que hauràs d'eliminar aquells codis de client que apareguin repetits. Resol la consulta:-
Utilitzant la funció
YEARde MySQL.Possible solució
SELECT codigo_cliente, fecha_pago FROM pago WHERE YEAR(fecha_pago) = 2008; -
Utilitzant la funció
DATE_FORMATde MySQL.Possible solució
SELECT codigo_cliente, fecha_pago FROM pago WHERE DATE_FORMAT(fecha_pago, '%Y') = 2008; -
Sense utilitzar cap de les funcions anteriors.
Possible solució
SELECT codigo_cliente, fecha_pago FROM pago WHERE fecha_pago BETWEEN '2008-01-01' AND '2008-12-31';
-
-
Retorna una llista amb el codi de comanda, codi de client, data esperada i data d'entrega de les comandes que no han estat entregades a temps.
Possible solució
SELECT codigo_pedido, codigo_cliente, fecha_esperada, fecha_entrega FROM pedido WHERE fecha_esperada < fecha_entrega; -
Retorna una llista amb el codi de comanda, codi de client, data esperada i data d'entrega de les comandes amb data d'entrega almenys dos dies abans de la data esperada.
-
Utilitzant la funció
ADDDATEde MySQL.Possible solució
SELECT codigo_pedido, codigo_cliente, fecha_esperada, fecha_entrega FROM pedido WHERE ADDDATE(fecha_entrega, INTERVAL 2 DAY) <= fecha_esperada;o bé
SELECT codigo_pedido, codigo_cliente, fecha_esperada, fecha_entrega FROM pedido WHERE fecha_esperada >= ADDDATE(fecha_entrega, INTERVAL 2 DAY); -
Utilitzant la funció
DATEDIFFde MySQL.Possible solució
SELECT codigo_pedido, codigo_cliente, fecha_esperada, fecha_entrega FROM pedido WHERE DATEDIFF(fecha_esperada, fecha_entrega) >= 2; -
Seria possible resoldre aquesta consulta utilitzant l'operador de suma
+o resta-?Possible solució
No podem restar dates amb l'operador
+o-sols, però sí amb+ INTERVAL...SELECT codigo_pedido, codigo_cliente, fecha_esperada, fecha_entrega FROM pedido WHERE fecha_entrega + INTERVAL 2 DAY <= fecha_esperada;o bé
SELECT codigo_pedido, codigo_cliente, fecha_esperada, fecha_entrega FROM pedido WHERE fecha_esperada >= fecha_entrega + INTERVAL 2 DAY;
-
-
Retorna una llista de totes les comandes que rebutjades,
Rechazado, el2009.Possible solució
SELECT * FROM pedido WHERE estado = 'Rechazado' AND YEAR(fecha_pedido) = 2009; -
Retorna una llista de totes les comandes entregades el mes de
generde qualsevol any.Possible solució
SELECT * FROM pedido WHERE MONTH(fecha_entrega) = 1; -
Retorna una llista amb tots els pagaments que es varen fer l'any
2008ambPaypal. Ordena el resultat de major a menor importtotal.Possible solució
SELECT * FROM pago WHERE forma_pago = 'PayPal' AND YEAR(fecha_pago) = 2008 ORDER BY total DESC; -
Retorna una llista amb totes las formes de pagament que apareixen a la taula
pago. Tingues en compte que no han d'aparèixer formes de pagament repetides.Possible solució
SELECT DISTINCT forma_pago FROM pago; -
Retorna una llista amb tots els productes que pertanyen a la gama
Ornamentalesi que tenen més de100unitats en stock. La llista ha d'estar ordenada pel preu de venta, mostrant en primer lloc els de preu més elevat.Possible solució
SELECT * FROM producto WHERE gama = 'Ornamentales' AND cantidad_en_stock > 100 ORDER BY precio_venta DESC; -
Retorna una llista amb tots els clients que siguin de la ciutat de
Madridi que tinguin un representant de vendes amb codi d'empleat11o30.Possible solució
SELECT * FROM cliente WHERE ciudad = 'Madrid' AND codigo_empleado_rep_ventas IN (11, 30);o bé
SELECT * FROM cliente WHERE ciudad = 'Madrid' AND (codigo_empleado_rep_ventas = 11 OR codigo_empleado_rep_ventas = 30);Compte: Calen parèntesis en l'
ORDegut a la prioritat de
ANDsobre l'OR, si no posem parèntesis, el resultat no serà l'esperat.En SQL, sempre que puguem, utilitzarem
IN.