Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
BASE DE DATOS
10 CONSULTAS SQL BD PUBS
AUTOR:
DOCENTE:
--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
--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
--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
--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'
--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)
--10. Mostra la cantidad de ordenes por ao SELECT year(ord_date) AS ao_venta,COUNT(*) AS cantidad FROM sales GROUP BY year(ord_date)