You are on page 1of 10

TECNOLOGIA EN DESARROLLO DE SOFTWARE

BASE DE DATOS 1

SEMESTRE: SEGUNDO
ANDRÉS DE LA CADENA
1. EJERCICIO 1 - -- Mostrar a todos los empleados que se encuentran en el departamento de manufactura y de
aseguramiento de la calidad.
select e.BusinessEntityID, e.*,
d.Name
from HumanResources.Employee e
inner join
HumanResources.EmployeeDepartmentHistory h
on e.BusinessEntityID = h.BusinessEntityID
inner join HumanResources.Department d
on d.DepartmentID = h.DepartmentID
and h.EndDate is null
and d.Name in ('Quality Assurance', 'Production');
2. EJERCICIO 2 - Indicar el listado de los empleados del sexo masculino y que son solteros
select e.BusinessEntityID, e.*,
d.Name
from HumanResources.Employee e
inner join
HumanResources.EmployeeDepartmentHistory h
on e.BusinessEntityID = h.BusinessEntityID
inner join HumanResources.Department d
on d.DepartmentID = h.DepartmentID
and h.EndDate is null
and d.Name in ('Quality Assurance', 'Production')
select * from HumanResources.Employee where Gender = 'M' and MaritalStatus = 'S';
3. EJERCICIO - Empleados cuyo apellido sea con la letra “S”
select * from HumanResources.Employee e
inner join Person.Person p
on e.BusinessEntityID = p.BusinessEntityID
and p.LastName like '%S%';
4. EJERCICIO 4
select pp.*,ps.Name from HumanResources.Employee he
inner join Person.Person pp
on pp.BusinessEntityID = he.BusinessEntityID
inner join Person.BusinessEntityAddress pb
on pb.BusinessEntityID = pp.BusinessEntityID
inner join Person.Address pa
on pa.AddressID = pb.AddressID
inner join Person.StateProvince ps
on ps.StateProvinceID = pa.StateProvinceID
and ps.Name = 'Florida';
5. EJERCICIO 5 - La suma de las ventas hechas por cada empleado, y agrupadas por año
select pp.FirstName, sum(SalesQuota) as total_vendido,
year(QuotaDate) as año
from Sales.SalesPersonQuotaHistory qh
inner join Person.Person pp
on qh.BusinessEntityID = pp.BusinessEntityID
group by pp.BusinessEntityID, year(QuotaDate), pp.FirstName
order by pp.BusinessEntityID;

select qh.BusinessEntityID, pp.FirstName, pp.LastName,


sum(qh.SalesQuota) as Ventas_Totales
from Sales.SalesPersonQuotaHistory qh
inner join Person.Person pp
on qh.BusinessEntityID = pp.BusinessEntityID
group by qh.BusinessEntityID, pp.FirstName, LastName
Order by Ventas_Totales desc
6. EJERCICIO -Simplemente consultamos las veces que se ha vendido y lo ordenamos, seleccionando el primer
elemento.
/*El producto más vendido*/
select top 1 pp.ProductID, pp.Name, count(ss.ProductID) as veces_vendido
from Production.Product pp
inner join Sales.SalesOrderDetail ss
on pp.ProductID = ss.ProductID
group by ss.ProductID, pp.Name, pp.ProductID
order by count(ss.ProductID) desc;
7. EJERCICIO - Lo mismo que antes, pero ahora ordenando por el número de veces que se vendió, de manera
ascendente.
/*El producto menos vendido*/
select top 1 pp.ProductID, pp.Name, count(ss.ProductID) as veces_vendido
from Production.Product pp
inner join Sales.SalesOrderDetail ss
on pp.ProductID = ss.ProductID
group by ss.ProductID, pp.Name, pp.ProductID
order by count(ss.ProductID) asc;
8. EJERCICIO 8 --Listado de productos por número de ventas ordenando de mayor a menor
/*Listado de productos por no de ventas ordenando de mayor a menor*/
select pp.ProductID, pp.Name,pp.ProductNumber, pp.ListPrice,
count(ss.ProductID) as veces_vendido
from Production.Product pp
inner join Sales.SalesOrderDetail ss
on pp.ProductID = ss.ProductID
group by ss.ProductID, pp.Name, pp.ProductID,pp.ProductNumber, pp.ListPrice
order by count(ss.ProductID) desc;
9. EJERCICIO 9 -Se deben unir los encabezados de las ventas, los detalles de las ventas, los territorios de ventas y los
territorios.
/*Las ventas por territorio*/
select st.Name, sum(so.OrderQty * so.UnitPrice) as total_vendido
from Sales.SalesOrderHeader sh
inner join Sales.SalesOrderDetail so
on sh.SalesOrderID = so.SalesOrderID
inner join Sales.SalesTerritory st
on st.TerritoryID = sh.TerritoryID
group by st.TerritoryID, st.Name
order by sum(so.OrderQty * so.UnitPrice) desc;

You might also like