You are on page 1of 3

ALTER AUTHORIZATION ON DATABASE::ADVENTUREWORKS2012 TO SA

--1. OBTENER LA CANTIDAD DE EMPLEADOS QUE TRABAJAN POR CADA


--DEPARTAMENTO Y GRUPO DE TRABAJO.
--PRESENTE LOS DEPARTAMENTOS CUYA CANTIDAD DE EMPLEADOS SEA MAYOR 5
SELECT D.Name, D.GroupName, COUNT(1) AS CANTIDAD
FROM HumanResources.Department D
inner join HumanResources.EmployeeDepartmentHistory ED
on D.DepartmentID=ED.DepartmentID
GROUP BY D.Name, D.GroupName
HAVING COUNT(1)>5
--2. OBTENER LA LISTA DE LOS EMPLEADOS CUYA EDAD ES MAYOR QUE 40 AOS.
--PRESENTE EL NOMBRE, APELLIDO, SEXO, FECHA DE NACIMIENTO Y EDAD.
SELECT P.FirstName, P.LastName, E.Gender, E.BirthDate,
(DATEDIFF(yy,E.BirthDate,GETDATE()) ) AS EDAD
FROM AdventureWorks2012.HumanResources.Employee E
INNER JOIN AdventureWorks2012.Person.Person P
ON P.BusinessEntityID = E.BusinessEntityID
WHERE (DATEDIFF(yy,E.BirthDate,GETDATE()) ) > 40
--3. OBTENER LA CANTIDAD DE EMPLEADOS DE SEXO FEMENINO Y MASCULINO
SELECT E.Gender, COUNT(1) AS TOTAL_PERSONAS
FROM AdventureWorks2012.HumanResources.Employee E
GROUP BY E.Gender
--4. OBTENER LA CANTIDAD DE PRODUCTOS QUE HAN SIDO VENDIDOS EN TODAS LAS ORDENES
GENERADAS.
--MUESTRE LA INFORMACIN AGRUPADA POR NOMBRE Y COLOR DEL PRODUCTO,
--Y ORDENE LOS DATOS EN FORMA DESCENDENTE SEGN LA CANTIDAD.
SELECT P.Name, P.Color, sum(so.OrderQty) as CANTIDAD
FROM Production.Product P
inner join Sales.SalesOrderDetail SO
on P.ProductID=SO.ProductID
GROUP BY P.Name, P.Color
ORDER BY CANTIDAD DESC
--5. OBTENER LA LISTA DE CLIENTES CUYO TOTAL DE ORDENES GENEREDAS SEA MAYOR QUE
5.
--Presente EL NOMBRE y APELLIDO concatenados, el TIPO DE PERSONA Y la CANTIDAD d
e las rdenes.
select p.FirstName +' '+p.LastName as cliente,
p.PersonType,
count(s.SalesOrderID) as total_ordenes
from Person.Person p
inner join Sales.Customer c
on p.BusinessEntityID=c.CustomerID
inner join Sales.SalesOrderHeader s
on c.CustomerID=s.CustomerID
group by p.FirstName +' '+p.LastName,
p.PersonType
having count(s.SalesOrderID)>5

SELECT P.FirstName + ' ' + P.LastName as nombre, P.PersonType,


COUNT(1) AS TOTAL_ORDENES
FROM AdventureWorks2012.Sales.Customer SC
inner join AdventureWorks2012.Sales.SalesOrderHeader SH

on SH.CustomerID = SC.CustomerID
inner join AdventureWorks2012.Person.Person P
on SC.PersonID=P.BusinessEntityID
GROUP BY P.FirstName, P.LastName, P.PersonType
HAVING COUNT(1)>5
ORDER BY TOTAL_ORDENES DESC
--6. OBTENER LA SUMA DEL TOTAL A PAGAR Y LA CANTIDAD DE ORDENES
--GENERADAS EN EL AO 2008
--PRESENTE LA INFORMACIN AGRUPADA POR EL TIPO DE PERSONA.
SELECT P.PersonType,
COUNT(1) AS TOTAL_ORDENES, SUM(SH.TotalDue) AS TOTAL
FROM AdventureWorks2012.Sales.SalesOrderHeader SH
INNER JOIN AdventureWorks2012.Sales.Customer SC
ON SH.CustomerID=SC.CustomerID
INNER JOIN AdventureWorks2012.Person.Person P
ON SC.PersonID=P.BusinessEntityID
WHERE YEAR(SH.OrderDate) = 2008
GROUP BY P.PersonType
--7. MUESTRE TODAS LAS ORDENES GENERADAS POR EL CLIENTE DE CODIGO (CUSTOMER ID)
29580
--PRESENTE EL NOMBRE, APELLIDO, TIPO DE PERSONA, ID PERSONA (BUSINESS ENTITY ID)
,
--ID DE ORDEN (SALES ORDER ID), FECHA ORDEN, SUBTOTAL, TAXAMT, FREIGHT, TOTALDUE
SELECT P.FirstName, P.LastName, P.PersonType,
P.BusinessEntityID, SH.SalesPersonID,
SH.SalesOrderID, SH.OrderDate, SH.SubTotal,
SH.TaxAmt, SH.Freight, SH.TotalDue
FROM AdventureWorks2012.Sales.SalesOrderHeader SH
INNER JOIN AdventureWorks2012.Sales.Customer SC
ON SH.CustomerID=SC.CustomerID
INNER JOIN AdventureWorks2012.Person.Person P
ON SC.PersonID=P.BusinessEntityID
WHERE SC.CustomerID=29580
SELECT
SELECT
SELECT
SELECT

*
*
*
*

FROM AdventureWorks2012.Sales.SalesOrderHeader WHERE CustomerID=29580


FROM AdventureWorks2012.Sales.Customer SC WHERE SC.PersonID=517
FROM
AdventureWorks2012.Person.Person P WHERE P.BusinessEntityID=517
FROM AdventureWorks2012.HumanResources.Employee

--8. OBTENER LA LISTA DE PRODUCTOS, EL TIPO DE PRODUCTOS, EL COSTO ESTANDAR Y FE


CHA DE INICIO Y FIN
--DE LOS PRODUCTOS QUE HAYAN ESTADO EN OFERTA DURANTE EL AO 2006 Y 2007
SELECT P.Name, P.StandardCost, SO.StartDate, SO.EndDate, SO.Type
FROM Sales.SpecialOffer SO
INNER JOIN Sales.SpecialOfferProduct SOP
ON SO.SpecialOfferID=SOP.SpecialOfferID
INNER JOIN Production.Product P
ON SOP.ProductID=P.ProductID
WHERE (YEAR(SO.StartDate)=2006 OR YEAR(SO.StartDate)=2007)
--9. OBTENER EL TOTAL DE PRODUCTOS Y EL COSTO ESTANDAR PROMEDIO DE LOS PRODUCTOS
HAYAN ESTADO
--EN OFERTA DURANTE EL AO 2005 Y 2007. PRESENTE LA INFORMACIN AGRUPADA POR EL TIPO
DE PRODUCTO
--Y LOS DATOS ORDENADOS EN FORMA DESCENDENTE POR EL TOTAL DE PRODUCTOS
SELECT SO.Type, SO.Category, AVG(P.StandardCost) AS COSTO_PROMEDIO,
COUNT(1) AS TOTAL_PRODUCTOS

FROM AdventureWorks2012.Sales.SpecialOffer SO
INNER JOIN AdventureWorks2012.Sales.SpecialOfferProduct SOP
ON SO.SpecialOfferID=SOP.SpecialOfferID
INNER JOIN AdventureWorks2012.Production.Product P
ON SOP.ProductID=P.ProductID
WHERE (YEAR(SO.StartDate)=2005 OR YEAR(SO.StartDate)=2007)
GROUP BY SO.Type, SO.Category
ORDER BY TOTAL_PRODUCTOS DESC
--10. OBTENER EL TOTAL DE PRODUCTOS Y EL COSTO ESTANDAR PROMEDIO DE LOS PRODUCTO
S HAYAN ESTADO
--EN OFERTA. PRESENTE LA INFORMACIN AGRUPADA POR EL NOMBRE DEL PRODUCTO Y LOS DAT
OS
--ORDENADOS EN FORMA ASCENDENTE POR EL TOTAL DE PRODUCTOS
SELECT P.Name, AVG(P.StandardCost) AS COSTO_PROMEDIO, COUNT(1) AS TOTAL_PRODUCTO
S
FROM AdventureWorks2012.Sales.SpecialOffer SO
INNER JOIN AdventureWorks2012.Sales.SpecialOfferProduct SOP
ON SO.SpecialOfferID=SOP.SpecialOfferID
INNER JOIN AdventureWorks2012.Production.Product P
ON SOP.ProductID=P.ProductID
GROUP BY P.Name
HAVING COUNT(1) > 1
ORDER BY TOTAL_PRODUCTOS
--11. Obtener el valor del importe vendido (suma de la cantidad por el precio de
l producto)
--por cada orden, visualizando el nmero de la orden, la fecha y el valor del impo
rte,
--y presente los datos ordenados en forma descendente segn la fecha.
SELECT
H.SalesOrderID AS 'N Orden',
H.OrderDate AS Fecha,
SUM(D.OrderQty*D.UnitPrice) AS [Importe Vendido]
FROM Sales.SalesOrderHeader H
INNER JOIN Sales.SalesOrderDetail D
ON H.SalesOrderID = D.SalesOrderID
GROUP BY H.SalesOrderID, H.OrderDate
ORDER BY H.OrderDate DESC
--12. Obtener el total de ordenes que han sido atendidas por
--cada vendedor y la suma del subtotal
--generado, durante el ao 2008.
SELECT
H.SalesPersonID AS [Codigo Vendedor],
P.FirstName +' '+ P.LastName AS [Nombre Vendedor],
COUNT(1) AS [Total Ordenes Vendidas],
SUM(H.SubTotal) AS [Subtotal Vendido]
FROM Sales.SalesOrderHeader H
INNER JOIN Sales.SalesOrderDetail D
ON H.SalesOrderID = D.SalesOrderID
INNER JOIN Person.Person P
ON H.SalesPersonID = P.BusinessEntityID
WHERE YEAR(H.OrderDate) = 2008
GROUP BY H.SalesPersonID, P.FirstName +' '+ P.LastName

You might also like