Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
1 Universidad de los Andes Facultad de Ciencias Económicas y Empresariales Ingeniería Comercial Programación y Manejo de la Información 2021-1 Ayudantía 3 SQL Consultas 29 de marzo del 2021 Profesores: Andrés Kipreos - Agustín Lagos - Stefan Elbl Ayudante: Jose Pablo González 1. Repaso Tablas: CLIENTS INVOICES 2 PROYECCIÓN SELECT invoice_id, invoice_total, payment_total, invoice_date FROM invoices; SELECCIÓN SELECT invoice_id, invoice_total, payment_total, invoice_date FROM invoices WHERE invoice_total > 150; UNIÓN SELECT name, address FROM clients UNION SELECT city, phone FROM clients; 3 JOIN SELECT name, city, invoice_id, number FROM clients c JOIN invoices i ON c.client_id = i.client_id WHERE invoice_total > 150; RESTA SELECT invoice_id, number, invoice_total invoice_date FROM invoices WHERE invoice_total > 150; Menos SELECT invoice_id, number, invoice_total, invoice_date FROM invoices WHERE invoice_date < "2019-07-01"; Práctico 4 PAYMENTS PAYMENT_METHODS PREGUNTAS A. Nombre de los clientes, dirección del cliente junto con la fecha y el monto de los pagos que hayan realizado los clientes. B. Nombre de los clientes, dirección del cliente junto con la fecha y el monto de los pagos que hayan realizado los clientes, adicional a esto agregar el nombre del método de pago. C. El id y el number de todos los invoices realizados entre el 01-07-2019 y 01-12-2019, adicional agregar el método de pago en caso de existir. D. Todos los payment_id, date y monto de los pagos con sus respectivos clientes, también detallar el nombre del cliente. Hay que considerar que se deben agregar pagos nulos en caso de existir clientes que no hayan realizado pagos. Todo ordenado en base al id del cliente. E. Todos los nombres de los clientes y su ciudad con todas las posibilidades de pago que se tienen. 5 SOLUCIONES A. INNER JOIN (Entre 2 tablas). SELECT clients.name, clients.address, payments.date, payments.amount FROM sql_invoicing.clients JOIN sql_invoicing.payments ON clients.client_id = payments.client_id ORDER BY date; B. INNER JOIN (Entre 3 tablas). SELECT clients.name, clients.address, payments.date, payments.amount, payment_methods.name FROM sql_invoicing.clients JOIN sql_invoicing.payments ON clients.client_id = payments.client_id JOIN sql_invoicing.payment_methods ON payments.payment_method=payment_methods.payment_method_id ORDER BY date; 6 C. LEFT OUTER JOIN SELECT invoices.invoice_id, invoices.number, payment_methods.name FROM sql_invoicing.invoices LEFT JOIN sql_invoicing.payments ON invoices.invoice_id = payments.invoice_id LEFT JOIN sql_invoicing.payment_methods ON payments.payment_method = payment_methods.payment_method_id WHERE invoice_date BETWEEN "2019-07-01" AND "2019-12-01" ORDER BY invoice_date; D. RIGHT OUTER JOIN SELECT payments.payment_id, payments.date, payments.amount, clients.name FROM sql_invoicing.payments RIGHT JOIN sql_invoicing.clients ON payments.client_id = clients.client_id ORDER BY clients.client_id; 7 E. FULL OUTER JOIN SELECT clients.name, clients.city, payment_methods.name FROM sql_invoicing.clients, sql_invoicing.payment_methods;
Compartir