Citation preview

Transact SQL - Pubs Base de Datos UCV

UNIVERSIDAD CÉSAR VALEJO FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA DE SISTEMAS

BASE DE DATOS “10 CONSULTAS SQL – BD PUBS”

AUTOR:

DOCENTE:

 ING. JANETT JULCA FLORES

1

Trujillo, Perú 2011

Rommel Guillermo Benitez Valdivia | Universidad Cesar Vallejo

Transact SQL - Pubs Base de Datos UCV

10 Consultas realizadas a la base de datos Pubs --1. Libros vendidos cuyos autores son de la ciudad de Oakland SELECT stor_id AS codigo, ord_date, title, type, au_lname + ' ' + au_fname AS autor, city FROM authors INNER JOIN titleauthor ON authors.au_id = titleauthor.au_id INNER JOIN sales ON titleauthor.title_id = sales.title_id INNER JOIN titles ON titleauthor.title_id = titles.title_id AND sales.title_id = titles.title_id WHERE city='Oakland'

--2. Libros editados en estados unidos cuyo precio esta entre 18 y 22 dolares ordenados por titulo ascendentemente SELECT * from titles inner join publishers on titles.pub_id=publishers.pub_id WHERE price between 18 and 22 and country='usa' ORDER BY 2 ASC

2

Rommel Guillermo Benitez Valdivia | Universidad Cesar Vallejo

Transact SQL - Pubs Base de Datos UCV

--3. Cuantos libros fueron atendidos por el empleado Paolo Accorti SELECT emp_id AS Codigo,fname AS Apellido,lname as Nombre, COUNT(*) AS Cantidad FROM employee e INNER JOIN publishers p ON e.pub_id=p.pub_id INNER JOIN titles t ON t.pub_id=p.pub_id WHERE fname='Paolo' AND lname='Accorti' GROUP BY emp_id,fname,lname

--4. Se muestra de forma agrupada por tipo, todos los tipos, la suma de los precios y la suma del anticipo de la -tabla titulos SELECT type AS tipo, price AS precio, advance AS anticipo FROM titles ORDER BY TYPE COMPUTE sum(price) BY TYPE COMPUTE avg(advance) BY TYPE

3

Rommel Guillermo Benitez Valdivia | Universidad Cesar Vallejo

Transact SQL - Pubs Base de Datos UCV

--5. Al ejecutar la consulta se muestra una lista de empleados con el siguiente texto. -Si el empleado no tiene nombre o la consulta devuelve null se remplazará por 'EMPLEADO SIN NOMBRE' SELECT ISNULL('El Empleado ' + cast(lname + ' ' + fname AS VARCHAR(25)) + ' con cargo de ' + cast(job_desc AS VARCHAR(15)) + ' fue contratado el ' + CAST(day(hire_date) AS CHAR(2)) + ' de ' + cast(datename(month,hire_date) AS VARCHAR(14)) + ' de ' + cast(year(hire_date) AS CHAR(4)), 'EMPLEADO SIN NOMBRE') AS [DATOS EMPLEADOS] FROM employee e inner join jobs j ON e.job_id=j.job_id ORDER BY hire_date

4

Rommel Guillermo Benitez Valdivia | Universidad Cesar Vallejo

Transact SQL - Pubs Base de Datos UCV

--6. Mostrar el precio mas alto, mas bajo y la diferencia entre ambos de todos los titulos --- de tipo business SELECT type, MAX(price) AS [precio mas alto], MIN(price) AS [precio mas bajo], MAX(price) - MIN(price) AS [diferencia entre ambos] FROM titles GROUP BY type HAVING type='business'

5

Rommel Guillermo Benitez Valdivia | Universidad Cesar Vallejo

Transact SQL - Pubs Base de Datos UCV --7. Visualizar el número de Productions Manager,Operations Manager,Editor que hay en la tabla empleados -- ordenados por el cargo SELECT job_desc AS Cargo,COUNT(*) AS [N° de empleados] FROM employee e inner join jobs j ON e.job_id=j.job_id GROUP BY job_desc HAVING job_desc in ('Productions Manager','Operations Manager','Editor') ORDER BY job_desc

--8. Mostrar todos los titulos, precio y anticipo de aquellos titulos que tengan un precio superior a -20 dolares. Tambien mostrar la suma total del precio y del anticipo SELECT title AS titulo ,price AS precio ,advance AS anticipo FROM titles WHERE price>20 ORDER BY title COMPUTE sum(price) COMPUTE sum(advance)

6

Rommel Guillermo Benitez Valdivia | Universidad Cesar Vallejo

Transact SQL - Pubs Base de Datos UCV --9. Se desea saber que empleados se eliminarian si se quitasen los cargos 'Managing Editor','Marketing Manager' SELECT lname,fname,job_desc, 'Accion'=CASE WHEN job_desc IN('Managing Editor','Marketing Manager') THEN 'Empleado de baja' ELSE 'Se mantiene' END FROM employee e inner join jobs j on e.job_id=j.job_id ORDER BY 4

--10. Mostra la cantidad de ordenes por año SELECT year(ord_date) AS año_venta,COUNT(*) AS cantidad FROM sales GROUP BY year(ord_date)

7

Rommel Guillermo Benitez Valdivia | Universidad Cesar Vallejo