Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save brayancruces/b63b0718f7c0d3c13bd2094a34c52954 to your computer and use it in GitHub Desktop.
Save brayancruces/b63b0718f7c0d3c13bd2094a34c52954 to your computer and use it in GitHub Desktop.
QUERIES
/* Listar el importe neto vendido por cliente cuya region de envio es NM , mostrar solo aquellos clientes con importe neto vendido mayor a 100,000
Mostar id, nombre , ciudad importe ordenelo por importe vendido */
SELECT C.CustomerID , C.CompanyName , C.City , MONTO_VENTA=CONVERT(money,SUM((od.Quantity*od.UnitPrice*(1-od.Discount))))
FROM Region R inner join Territories T on R.RegionID=T.RegionID
join EmployeeTerritories ET on T.TerritoryID=ET.TerritoryID
join Employees E on E.EmployeeID=ET.EmployeeID
join Orders O on O.EmployeeID=E.EmployeeID
join Customers C on C.CustomerID=O.CustomerID
join [Order Details] od on od.OrderID=o.OrderID
GROUP BY C.CustomerID , C.CompanyName , C.City
HAVING SUM((od.Quantity*od.UnitPrice*(1-od.Discount)))>100000
ORDER BY MONTO_VENTA desc
SELECT * FROM Orders
WHERE ShipRegion = 'NM'
SELECT c.CustomerID, c.CompanyName, MONTO_VENTA=CONVERT(money,SUM((od.Quantity*od.UnitPrice*(1-od.Discount))))
FROM Customers c inner join Orders O on O.CustomerID=c.CustomerID
join [Order Details] od on od.OrderID=O.OrderID
WHERE O.ShipRegion = 'NM'
GROUP BY c.CustomerID, c.CompanyName
HAVING SUM((od.Quantity*od.UnitPrice*(1-od.Discount)))>50000
/* Preg 2
Mostrar la lista de proveedores / (Suppliers) cuyos productos estan a punto de quedarse sin stock. Segun Nortwhind si la diferencia
entre los productos prendientes de entrega y el stock es menor a 5 ya se debe realizar un pedido al proveedor
Listar el nombre del proveedor,codigo del proveedor, nombre del producto , unidades pendientes de entrega , unidades en stock
y la cantidad faltante de stock */
SELECT s.CompanyName , s.SupplierID , p.ProductName , SUM(od.Quantity) 'Pedidos' , p.UnitsInStock ,
SUM(od.Quantity)-p.UnitsInStock 'Faltante'
FROM Suppliers s inner join Products p on s.SupplierID = p.SupplierID
join [Order Details] od on od.ProductID=p.ProductID
join Orders o on od.OrderID=o.OrderID
WHERE o.ShippedDate is NULL and p.UnitsInStock < 5
GROUP BY s.CompanyName , s.SupplierID , p.ProductName , p.UnitsInStock
HAVING SUM(od.Quantity)>p.UnitsInStock
/* Mostrar los codigos de ordenes y la cantidad de productos (quantity) en cada orden de las ordenes que hayan superado las 250
unidades de productos vendidos . Siempre y cuando la diferencia de dias entre la fecha de la orden y la fecha de despacho sea mayor a 7 */
SELECT o.OrderID , SUM(od.Quantity)
FROM Orders o inner join [Order Details] od on o.OrderID=od.OrderID
join Products p on p.ProductID=od.ProductID
WHERE DATEDIFF(DD, o.OrderDate,o.ShippedDate) > 7
GROUP BY o.OrderID
HAVING SUM(od.Quantity) > 250
/* Se quiere otorgar un incentivo a los empleados onomasticos , para lo cual en el mes de su cumpleaños se le
entregara un bono equivalente al 5% del monto de la venta efectuada por el durante el mes .
Obtener la relacion de empleados que se haran acreedores de dicho bono , mostrando el ID EMPLEADO ,
APELLIDO , NOMBRE , FECHA DE NACIMIENTO e importe a entregar */
CREATE view VW_EMPLEADOS AS
SELECT E.EmployeeID , E.LastName , E.FirstName , E.BirthDate , COMISION_A_PAGAR=SUM((od.Quantity*od.UnitPrice*(1-od.Discount)*0.005))
FROM Employees E inner join Orders O ON E.EmployeeID=O.EmployeeID
join [Order Details] od on od.OrderID=o.OrderID
WHERE MONTH(o.OrderDate) = MONTH(E.BirthDate)
GROUP BY E.EmployeeID , E.LastName , E.FirstName , E.BirthDate
ORDER BY E.EmployeeID
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment