Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- a)
- A. Tomando en cuenta la tabla ventas (sales) y la tabla títulos (titles) obtener los siguientes atributos:
- 1. El id de la tienda (IDTienda)
- 2. El número de compra (IDCompra)
- 3. La fecha en la que se realizó la compra (FechaCompra)
- 4. La cantidad de libros comprados (Cantidad)
- 5. El id del título del libro (IDLibro)
- 6. El título del libro (TituloLibro)
- 7. El precio unitario (PrecioUnitario)
- 8. La cantidad que se pagó por la compra "precio unitario * cantidad" (TotalCompra).
- Ordenado por título
- TIP: Utilice JOIN.
- Resultados aproximados: 21 filas
- Ponga los encabezados indicados entre paréntesis.
- */
- SELECT s.stor_id,
- s.ord_num,
- s.ord_date,
- s.qty,
- t.title_id,
- t.title,
- t.price,
- t.price*s.qty
- FROM dbo.sales S
- INNER JOIN dbo.titles T
- ON s.title_id = t.title_id
- ORDER BY t.title DESC
- /*
- b) B. Modifique la consulta anterior para obtener la información de la venta que se registró como mínima.
- Resultados aproximados: 1 fila.
- */
- SELECT s.stor_id,
- s.ord_num,
- s.ord_date,
- s.qty,
- t.title_id,
- t.title,
- t.price,
- t.price*s.qty
- FROM dbo.sales S
- INNER JOIN dbo.titles T
- ON s.title_id = t.title_id
- WHERE t.price*s.qty =
- ( SELECT MIN(t2.price*s2.qty)
- FROM dbo.sales s2
- INNER JOIN dbo.titles t2
- ON s2.title_id = t2.title_id
- )
- ORDER BY t.title
- /*
- C) Modifique la consulta anterior para obtener la información de la venta que se registró como máxima y haga una UNION con la consulta B.
- Resultados aproximados: 2 filas
- */
- SELECT s.stor_id,
- s.ord_num,
- s.ord_date,
- s.qty,
- t.title_id,
- t.title,
- t.price,
- t.price*s.qty
- FROM dbo.sales S
- INNER JOIN dbo.titles T
- ON s.title_id = t.title_id
- WHERE t.price*s.qty =
- ( SELECT MIN(t2.price*s2.qty)
- FROM dbo.sales s2
- INNER JOIN dbo.titles t2
- ON s2.title_id = t2.title_id
- )
- UNION
- SELECT s.stor_id,
- s.ord_num,
- s.ord_date,
- s.qty,
- t.title_id,
- t.title,
- t.price,
- t.price*s.qty
- FROM dbo.sales S
- INNER JOIN dbo.titles T
- ON s.title_id = t.title_id
- WHERE t.price*s.qty =
- ( SELECT MAX(t2.price*s2.qty)
- FROM dbo.sales s2
- INNER JOIN dbo.titles t2
- ON s2.title_id = t2.title_id
- )
- ORDER BY t.title
- /*
- D) Tomando como referencia las tablas títulos (titles) y ventas (sales) muestre aquellos títulos que NO tienen registrada venta alguna.
- Tip: Puedes usar la cláusula EXISTS.
- Resultados aproximados: 2 filas
- */
- SELECT *
- FROM dbo.titles t
- WHERE NOT EXISTS (
- SELECT *
- FROM dbo.sales S
- WHERE s.title_id = t.title_id
- )
- /*
- E) Modifique esta consulta para que por título nos muestre la suma de cantidades vendidas así como la suma de importes como se muestra a continuación
- Tip: Deberás usar las cláusulas GROUP BY.
- Resultados aproximados: 16 filas
- */
- SELECT T.Title,
- SUM(SA.qty),
- SUM(SA.qty * T.price)
- FROM sales SA
- INNER JOIN Stores ST
- ON SA.stor_id = ST.stor_id
- INNER JOIN titles T
- ON SA.title_id = T.title_id
- GROUP BY T.Title
- /*
- F. Tomando como base la tabla titleauthor haga una consulta que utilice
- subconsultas a las tablas authors y titles en SELECT para obtener el
- nombre del autor y el nombre del título como se muestra a continuación:
- TIP: Harás dos subconsultas.
- Resultados aproximados: 25 filas.
- */
- SELECT t.au_id,
- (
- SELECT a.au_fname+''+a.au_lname
- FROM dbo.authors a
- WHERE a.au_id = t.au_id
- ),
- (
- SELECT t2.title
- FROM dbo.titles t2
- WHERE t2.title_id = t.title_id
- )
- FROM dbo.titleauthor t
- /*
- G) Crear una consulta que tomará como base la tabla employees y jobs para
- obtener la información de los empleados y su puesto de trabajo.
- La consulta deberá arrojar lo siguiente:
- 1. El identificador del empleado (EmpleadoID)
- 2. El nombre del empleado (EmpleadoNombre)
- 3. La fecha en la que se contrató al empleado (EmpleadoFechaContratacion)
- 4. La antigüedad de ese empleado (EmpleadoAntiguedad)
- 5. El puesto de ese empleado (EmpleadoPuesto)
- TIP: Para el punto 4 usarás la función DATEDIFF para obtener la diferencia entre dos fechas y GETDATE() para obtener la fecha actual.
- Ponga los encabezados indicados entre paréntesis.
- Resultados aproximados: 43 filas
- */
- SELECT e.emp_id,
- e.fname+''+e.lname,
- e.hire_date,
- DATEDIFF(YEAR, e.hire_date,GETDATE()),
- j.job_desc
- FROM dbo.employee e
- INNER JOIN dbo.jobs j
- ON e.job_id = j.job_id
Add Comment
Please, Sign In to add comment