Logo Studenta

Ayudantía 3 (con solucionario)

¡Estudia con miles de materiales!

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;

Otros materiales

Materiales relacionados

2 pag.
3 pag.
POSTGRESQL - Samuel Ferrara

User badge image

Muchos Materiales

29 pag.
¿Qué es DaviPlata?

UDEAP

User badge image

Muchos Contenidos

38 pag.