{"id":43,"date":"2015-05-12T06:50:39","date_gmt":"2015-05-12T06:50:39","guid":{"rendered":"http:\/\/www.josejavierfm.es\/blog\/?p=43"},"modified":"2015-06-19T06:51:08","modified_gmt":"2015-06-19T06:51:08","slug":"ejercicio-mysql","status":"publish","type":"post","link":"https:\/\/www.josejavierfm.es\/blog\/2015\/05\/12\/ejercicio-mysql\/","title":{"rendered":"Ejercicio mysql"},"content":{"rendered":"<p><strong>Ejercicio<\/strong><\/p>\n<p>A partir del siguiente enunciado:<\/p>\n<p><em>Se quiere almacenar informaci\u00f3n de los empleados, clientes, productos y pedidos de una empresa. De cada cliente queremos almacenar un c\u00f3digo \u00fanico, el nombre y la ciudad. Un cliente puede hacer varios pedidos, pero un pedido es dolo de un cliente. De cada pedido queremos almacenar un c\u00f3digo \u00fanico y la fecha del pedido. Cada pedido lo gestiona un empleado. Un empleado puede gestionar varios pedidos. De cada empleado queremos almacenar un c\u00f3digo \u00fanico, nombre y ciudad. Cada pedido puede incluir varias unidades de un solo producto. De cada producto almacenamos un c\u00f3digo \u00fanico su nombre y precio unitario.<\/em><\/p>\n<p>Obtener las siguientes sentencias:<\/p>\n<p>A. muestra un listado con las siguientes columnas: numero_de_pedido,nombre_cliente,nombre_empleado,nombre_producto,cantidad, precio_unitario y total_importe_pedido<br \/>\nB. Muestra un listado con las siguientes columnas: numero_de_pedidos, nombre_cliente, media_importe_pedidos y total_importe_pedidos para cada cliente ordenado por nombre de cliente<br \/>\nC. Muestra un listado con las siguientes columnas: numero_de_pedidos, numero_empleados, ciudad, media_importe_pedidos y total_importe_pedidos para cada ciudad de residencia de los empleados siempre que al menos en la ciudad haya 2 o mas empleados y que en total en la ciudad se hayan firmado al menos 6 pedidos.<br \/>\nD. Muestra todos los datos de los empleados que hayan firmado pedidos a clientes de su misma ciudad.<\/p>\n<p><strong>Soluci\u00f3n<\/strong><\/p>\n<p><a href=\"http:\/\/www.josejavierfm.es\/blog\/wp-content\/uploads\/2015\/06\/mysql_1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-44\" src=\"http:\/\/www.josejavierfm.es\/blog\/wp-content\/uploads\/2015\/06\/mysql_1-300x161.png\" alt=\"mysql_1\" width=\"300\" height=\"161\" srcset=\"https:\/\/www.josejavierfm.es\/blog\/wp-content\/uploads\/2015\/06\/mysql_1-300x161.png 300w, https:\/\/www.josejavierfm.es\/blog\/wp-content\/uploads\/2015\/06\/mysql_1.png 628w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>El script para crear las tablas seria:<\/p>\n<p>DROP TABLE IF EXISTS `examen_cliente`;<br \/>\nCREATE TABLE `examen_cliente` (<br \/>\n`codigo` int(11) NOT NULL AUTO_INCREMENT,<br \/>\n`nombre` varchar(255) DEFAULT NULL,<br \/>\n`ciudad` varchar(255) DEFAULT NULL,<br \/>\nPRIMARY KEY (`codigo`)<br \/>\n) ENGINE=InnoDB DEFAULT CHARSET=latin1;<\/p>\n<p>&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n&#8212; Table structure for examen_empleado<br \/>\n&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\nDROP TABLE IF EXISTS `examen_empleado`;<br \/>\nCREATE TABLE `examen_empleado` (<br \/>\n`codigo` int(11) NOT NULL AUTO_INCREMENT,<br \/>\n`nombre` varchar(255) DEFAULT NULL,<br \/>\n`ciudad` varchar(255) DEFAULT NULL,<br \/>\nPRIMARY KEY (`codigo`)<br \/>\n) ENGINE=InnoDB DEFAULT CHARSET=latin1;<\/p>\n<p>&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n&#8212; Table structure for examen_pedido<br \/>\n&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\nDROP TABLE IF EXISTS `examen_pedido`;<br \/>\nCREATE TABLE `examen_pedido` (<br \/>\n`codigo` int(11) NOT NULL AUTO_INCREMENT,<br \/>\n`fecha` date DEFAULT NULL,<br \/>\n`id_cliente` int(11) DEFAULT NULL,<br \/>\n`id_empleado` int(11) DEFAULT NULL,<br \/>\n`id_producto` int(11) DEFAULT NULL,<br \/>\n`cantidad` int(11) DEFAULT NULL,<br \/>\nPRIMARY KEY (`codigo`),<br \/>\nKEY `id_cliente` (`id_cliente`),<br \/>\nKEY `id_empleado` (`id_empleado`),<br \/>\nKEY `id_producto` (`id_producto`),<br \/>\nCONSTRAINT `fk_cliente2` FOREIGN KEY (`id_cliente`) REFERENCES `examen_cliente` (`codigo`),<br \/>\nCONSTRAINT `fk_empleado2` FOREIGN KEY (`id_empleado`) REFERENCES `examen_empleado` (`codigo`),<br \/>\nCONSTRAINT `fk_producto2` FOREIGN KEY (`id_producto`) REFERENCES `examen_producto` (`codigo`)<br \/>\n) ENGINE=InnoDB AUTO_INCREMENT=1014 DEFAULT CHARSET=latin1;<\/p>\n<p>DROP TABLE IF EXISTS `examen_producto`;<br \/>\nCREATE TABLE `examen_producto` (<br \/>\n`codigo` int(11) NOT NULL AUTO_INCREMENT,<br \/>\n`nombre` varchar(255) DEFAULT NULL,<br \/>\n`precio` float DEFAULT NULL,<br \/>\nPRIMARY KEY (`codigo`)<br \/>\n) ENGINE=InnoDB DEFAULT CHARSET=latin1;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>A.<\/strong><br \/>\nselect p.codigo as numero_de_pedido,<br \/>\nc.nombre as nombre_cliente,<br \/>\npr.nombre as nombre_producto,<br \/>\np.cantidad,<br \/>\npr.precio,<br \/>\np.cantidad*pr.precio as total_importe_pedido<br \/>\nfrom examen_pedido p<br \/>\ninner join examen_cliente c on p.id_cliente=c.codigo<br \/>\ninner join examen_producto pr on p.id_producto=pr.codigo<br \/>\ninner join examen_empleado e on p.id_empleado=e.codigo<\/p>\n<p><strong>B.<\/strong><br \/>\nselect count(*) as numero_de_pedidos,<br \/>\nc.nombre as nombre_cliente,<br \/>\navg(p.cantidad*pr.precio) as media_importe_pedidos,<br \/>\nsum(p.cantidad*pr.precio) as total_importe_pedidos<br \/>\nfrom examen_pedido p<br \/>\ninner join examen_cliente c on p.id_cliente=c.codigo<br \/>\ninner join examen_producto pr on p.id_producto=pr.codigo<br \/>\ninner join examen_empleado e on p.id_empleado=e.codigo<br \/>\ngroup by c.codigo<\/p>\n<p><strong>C.<\/strong><br \/>\nselect count(p.codigo) as numero_de_pedidos,<br \/>\ncount(e.codigo) as numero_empleados,<br \/>\ne.ciudad,<br \/>\navg(p.cantidad*pr.precio) as media_importe_pedidos,<br \/>\nsum(p.cantidad*pr.precio) as total_importe_pedidos<br \/>\nfrom examen_pedido p<br \/>\ninner join examen_cliente c on p.id_cliente=c.codigo<br \/>\ninner join examen_producto pr on p.id_producto=pr.codigo<br \/>\ninner join examen_empleado e on p.id_empleado=e.codigo<br \/>\ngroup by e.ciudad having count(e.codigo)&gt;=2 and sum(p.codigo)&gt;=6<\/p>\n<p><strong>D.<\/strong><br \/>\nselect e.*,p.codigo,p.fecha,c.nombre,c.ciudad<br \/>\nfrom examen_pedido p<br \/>\ninner join examen_cliente c on p.id_cliente=c.codigo<br \/>\ninner join examen_producto pr on p.id_producto=pr.codigo<br \/>\ninner join examen_empleado e on p.id_empleado=e.codigo<br \/>\nwhere e.ciudad=c.ciudad<\/p>\n\n<div class=\"twitter-share\"><a href=\"https:\/\/twitter.com\/intent\/tweet?via=josejavierfm\" class=\"twitter-share-button\">Twittear<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio A partir del siguiente enunciado: Se quiere almacenar informaci\u00f3n de los empleados, clientes, productos y pedidos de una empresa. De cada cliente queremos almacenar un c\u00f3digo \u00fanico, el nombre y la ciudad. Un cliente puede hacer varios pedidos, pero un pedido es dolo de un cliente. De cada pedido queremos almacenar un c\u00f3digo \u00fanico [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[7],"tags":[],"_links":{"self":[{"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/posts\/43"}],"collection":[{"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/comments?post=43"}],"version-history":[{"count":1,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/posts\/43\/revisions"}],"predecessor-version":[{"id":45,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/posts\/43\/revisions\/45"}],"wp:attachment":[{"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/media?parent=43"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/categories?post=43"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.josejavierfm.es\/blog\/wp-json\/wp\/v2\/tags?post=43"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}