Está en la página 1de 7

PARTE 1

 Utilizando la base de datos Northwind . Genere una lista de selección de la tabla


Employees (Empleado) donde solo se genere una columna de salida y esta contenga los
campos: EmployeeID, LastName y FirstName.

Select convert(nvarchar(2),EmployeeID) + ‘’ + LastName + ‘’ + FirstName as Nombre


from Employees

 Utilizando la tabla Employees liste las columnas EmployeeID, LastName,


FirstName, además envié dos mensajes en conjunto con cada fila utilizando para cada
uno una de las opciones de literales.

Select EmployeeID, LastName as Apellido, FirstName as Nombre, 'ESTOS SON


EMPLEADOS' as Literal, [Otra Forma] = 'Esta es otra forma' from Employees

 Suponga que queremos ver aquellos productos (Tabla Products) cuyos valores se
encuentran entre los 4 y 20 Dólares.

Select * from Products where UnitPrice Between 5.0 and 20.0

 Liste los campos de la tabla productos que tengan exactamente un precio de 18, 19 y
10 dolares.

Select * from Products where UnitPrice in (10.0,18.0,19.0)

 Encontrar todos los apellidos (LastName) en la tabla Employees que comiencen con
la letra <<S>>. Use el carácter comodín %.

SELECT LastName FROM Employees WHERE LastName LIKE 'S%' – Acá se arma la
frase con el comodín

Para recuperar el apellido de los Empleados cuya primera letra comienza entre <<A>> y
<<M>>. Utilice el comodín [ ].

SELECT LastName FROM Employees WHERE LastName LIKE '[A-M ]%'


 Usar Base de Datos Pubs . Para recuperar la información de un autor cuyo ID
comienza con el numero 724, sabiendo que cada ID tiene el formato de tres dígitos
seguidos por un guión, seguido por dos dígitos, otro guión y finalmente cuatro dígitos.
Utilizar el comodín _ .

Select * from authors where au_id LIKE '724-__-____'

 Usar base de datos Northwind . Liste todos los campos de la tabla Suppliers cuya
columna Región sea NULL.

Select * from Suppliers where Region is null

 Usando la base de dato PUBS. Calcula la suma de las ventas del año hasta la fecha
(ytd_sales) de todos los libros de la tabla titles .

USE pubs SELECT SUM(ytd_sales) FROM titles

 Usando la base de datos PUBS. Puede averiguar el precio promedio de todos los
libros si se duplicaran los precios ( tabla titles ).

SELECT avg (price * 2) FROM titles

 Usando la base de dato PUBS. Muestre el mayor valor de las las ventas del año
(ytd_sales) de todos los libros de la tabla titles.

USE pubs SELECT MAX(ytd_sales) FROM titles

 Usando la base de dato PUBS. Muestre el mínimo valor de las ventas del año
(ytd_sales) de todos los libros de la tabla titles.

USE pubs SELECT MIN (ytd_sales) FROM titles

 Usando la base de datos PUBS. Cuente las filas de la tabla titles.

Use Pubs SELECT COUNT(*) FROM titles


 Usando la base de datos PUBS. Cuente los datos de la tabla titles, cuyo tipo (TYPE)
sea business .

Use Pubs SELECT COUNT(TYPE) FROM titles WHERE TYPE = ‘business’

 Utilizando la base de datos PUBS. Liste las suma de las ventas por año ( ytd_sales )
hasta la fecha, clasificándolas por tipo (TYPE) de titulo (titles).

Use Pubs SELECT TYPE,SUM(ytd_sales) FROM titles GROUP BY TYPE

 Liste las sumas de las ventas por año (ydt_sales) hasta la fecha, clasificándolas por
tipo (TYPE) y pub_id.

Use Pubs SELECT TYPE, pub_id,SUM(ytd_sales) from titles Group by TYPE, pub_id

 Utilizando el ultimo ejemplo. Liste solamente los grupos cuyo pub_id sea igual a
0877. Pista, usar having

SELECT TYPE, pub_id,SUM(ytd_sales) from titles Group by TYPE,pub_id HAVING


pub_id = '0877‘

 De la base de datos PUBS. Combine las tablas stores y discounts para mostrar que
tienda (stor_id) ofrece un descuento y el tipo de descuento (discounttype).

Use Pubs
SELECT s.stor_id as ALMACEN, d.discounttype as DESCUENTO FROM stores s
JOIN discounts d ON s.stor_id = d.stor_id

SELECT s.stor_id as ALMACEN, d.discounttype as DESCUENTO FROM stores as


s,discounts as d WHERE s.stor_id = d.stor_id

Combinación externas Completas (full Outer Join) Especifica que se


debería incluir en el resultado las filas no coincidentes (filas que no
cumplen con la condición ON) así como las filas que coincidan (filas
que cumplen la condición ON). En el campo donde no es coincidente la
condición se coloca NULL

 Utilice el mismo ejemplo anterior solo utilice en el from la instrucción FULL


OUTER JOIN.

Use Pubs SELECT s.stor_id as ALMACEN, d.discounttype as DESCUENTO FROM


stores s FULL OUTER JOIN discounts d ON s.stor_id = d.stor_id
Combinación externa por la izquierda (Left Outer Join) Devuelve las
filas coincidentes más todas las filas de la tabla que se especifican a la
izquierda de la palabra clave JOIN.

 Utilice el mismo ejemplo anterior solo utilice en el from la instrucción LEFT


OUTER JOIN. Use Pubs SELECT s.stor_id as ALMACEN, d.discounttype as
DESCUENTO FROM stores s LEFT OUTER JOIN discounts d ON s.stor_id =
d.stor_id

Combinación externa por la derecha (Right Outer Join) Es lo


contrario a Left Outer Join

 Utilice el mismo ejemplo anterior solo utilice en el from la instrucción RIGHT


OUTER JOIN.

Use Pubs SELECT s.stor_id as ALMACEN, d.discounttype as DESCUENTO FROM


stores s RIGHT OUTER JOIN discounts d ON s.stor_id = d.stor_id

 Usando base de datos Northwind . Muestre los Productos (ID del Producto, Nombre
y Precio Unitario) que tengan un precio unitario igual al Máximo.

SELECT ProductID as ID,ProductName as Nombre, UnitPrice as Precio_Unitario


FROM Products WHERE UnitPrice = (SELECT MAX (UnitPrice) FROM Products)

 Usando base de datos Northwind . Muestre los Productos (ID del Producto, Nombre
y Precio Unitario) que tengan un precio unitario igual al Mínimo.

SELECT ProductID as ID,ProductName as Nombre, UnitPrice as Precio_Unitario


FROM Products WHERE UNITPRICE = (SELECT MIN(UNITPRICE) FROM
Products)

Operador UNION Este operador mezcla los resultados de dos o más


consultas en un solo conjunto de resultados que contiene todas las filas
que pertenecen a las consultas de la unión. Como restricción las
columnas que se obtienen por la UNION en ambas consultas deben ser
del mismo tipo de datos.

NOMENCLATURA: SELECT * FROM TABLAS UNION [ ALL ] SELECT *


FROM TABLAS
NOTA: Al usar el operador opcional ALL se listan como resultados todas las filas
de ambas consultas. Sino no se utiliza ALL se lista la UNION es decir no se listan
datos duplicados.

 Realice una unión de las consultas anidadas vistas anteriormente. Usando ambas
opciones de unión (Con y Sin ALL).

SELECT ProductID as ID,ProductName as Nombre, UnitPrice as Precio_Unitario


FROM Products WHERE UNITPRICE = (SELECT MIN(UNITPRICE) FROM
Products)
UNION
SELECT ProductID as ID,ProductName as Nombre, UnitPrice as Precio_Unitario
FROM Products WHERE UNITPRICE = (SELECT MIN(UNITPRICE) FROM
Products)

SELECT ProductID as ID,ProductName as Nombre, UnitPrice as Precio_Unitario


FROM Products WHERE UNITPRICE = (SELECT MIN(UNITPRICE) FROM
Products)
UNION ALL
SELECT ProductID as ID,ProductName as Nombre, UnitPrice as Precio_Unitario
FROM Products WHERE UNITPRICE = (SELECT MIN(UNITPRICE) FROM
Products)

PARTE 2

Mostrar una consulta que muestre el nombre del producto, el número de


unidades totales vendidas, de aquel producto del que mas unidades haya
vendido la empresa.

select productname, unitsonorder


from products
where unitsonorder= (SELECT MAX(unitsonorder)from products )

3. Mostrar una consulta que obtenga el nombre de empleado, el número de


pedidos que ha tramitado, y el dinero que ha generado en la empresa, de todos
aquellos empleados que han tramitado pedidos. En caso de existir algún
empleado que no haya tramitado pedidos se mostrará en las columnas número
de pedidos y generado un valor nulo.

select empleado.lastname,COUNT( pedidos.employeeid ),SUM( pedidos.freight )


from employees empleado left outer join orders pedidos on
empleado.employeeid=pedidos.employeeid
group by empleado.lastname,pedidos.employeeid

4. Modificar el ejercicio anterior para que muestre en los valores nulos de las
columnas número de pedidos y dinero generado un 0.

select empleado.lastname,COUNT( pedidos.employeeid ),


case when SUM( pedidos.freight ) is null then 0 else SUM( pedidos.freight ) end
from employees empleado left outer join orders pedidos on
empleado.employeeid=pedidos.employeeid
group by empleado.lastname,pedidos.employeeid

5. Modificar el ejercicio anterior para que muestre en lugar de un 0 las cadenas


"Sin Pedidos" y "Sin dinero".

select empleado.lastname,
case when COUNT( pedidos.employeeid )=0 then cast('Sin pedidos' as VARCHAR)
else cast( COUNT( pedidos.employeeid ) as nvarchar) end ,
case when SUM( pedidos.freight ) is null then CAST('Sin dinero'as VARCHAR) else
cast(SUM( pedidos.freight ) as nvarchar) end
from employees empleado left outer join orders pedidos on
empleado.employeeid=pedidos.employeeid
group by empleado.lastname,pedidos.employeeid

6. Crear una consulta que muestre el nombre de empleado, el número de


pedidos tramitado por cada empleado, de aquellos empleados que han tramitado
mas de 15 pedidos.

select empleado.lastname,case when COUNT( pedidos.employeeid) > 15 then


COUNT( pedidos.employeeid) end
from employees empleado inner join orders pedidos on
empleado.employeeID=pedidos.employeeID
group by empleado.lastname

7. Crear una consulta que muestre el nombre del cliente, el número de pedidos
que nos ha realizado el cliente, el dinero que nos ha dejado en la empresa, de
todos los clientes que sean de USA y que nos han realizado mas de 5 pedidos.

select cliente.contactname, count(pedidos.customerid) ,SUM( pedidos.freight)


from customers cliente inner join orders pedidos on
cliente.customerid=pedidos.customerid
where country = 'usa'
group by cliente.contactname

8. Crear una consulta que muestre el nombre del jefe y el número de


empleados a su cargo de aquel jefe que mas empleados tenga a su cargo.

select top 1 jefe.lastname,COUNT( empleado.lastname) as 'numEmp'


from employees jefe inner join employees empleado on
jefe.employeeID=empleado.reportsto
group by jefe.lastname
ORDER BY numEmp desc

9. Obtener el nombre del cliente y el número de pedidos del cliente que mas


pedidos ha realizado en la empresa.

select top 1 cliente.contactname, count( pedidos.customerid )as 'numpedidos'


from customers cliente inner join orders pedidos on
cliente.customerID=pedidos.CustomerID
group by cliente.contactname
order by numpedidos desc

10. Obtener el nombre del cliente y el volumen de negocio del cliente 


que mas volumen de negocio nos ha dejado en la empresa.

select top 1 cliente.contactname,SUM ( pedidos.freight ) as 'dinero'


from customers cliente inner join orders pedidos on
cliente.customerID=pedidos.CustomerID
group by cliente.contactname,pedidos.freight
order by dinero desc

También podría gustarte