SQL Tasks
SQL Tasks
SELECT S.orderid,S.orderdate,S.custid,S.empid
FROM Sales.Orders AS S
WHERE S.orderdate BETWEEN '2015-06-01' AND '2015-06-30'
// 2-topshiriq
SELECT S.OrderID, S.OrderDate, S.CustID, S.EmpID
FROM Sales.Orders AS S
WHERE S.OrderDate = EOMONTH(S.OrderDate);
// 3-TOPSHIRIQ
SELECT E.empid,E.firstname,E.lastname
FROM HR.Employees AS E
WHERE LEN(E.lastname)-LEN(REPLACE(LOWER(E.lastname),'e',''))>=2;
// 4-TOPSHIRIQ
SELECT S.orderid, SUM(S.qty * S.unitprice) AS totalvalue
FROM Sales.OrderDetails AS S
GROUP BY S.orderid
HAVING SUM(S.qty * S.unitprice) > 10000
ORDER BY totalvalue DESC;
// 5-TOPSHIRIQ
SELECT E.empid,E.lastname FROM HR.Employees AS E
WHERE LEFT(E.lastname,1) != UPPER(LEFT(E.lastname,1))
// 6-TOPSHIRIQ
The first one filters then,groups the results,anotherone does the difference
// 7-TOPSHIRIQ
SELECT TOP 3 S.shipcountry,AVG(S.freight) AS avgfreight
FROM Sales.Orders AS S
WHERE S.orderdate BETWEEN '2015-01-01' AND '2015-12-31'
GROUP BY S.shipcountry
ORDER BY avgfreight DESC
// 8-TOPSHIRIQ
SELECT
S.custid,
S.orderdate,
S.orderid,
ROW_NUMBER() OVER (
PARTITION BY S.custid
ORDER BY S.orderdate, S.orderid
) AS rownum
FROM Sales.Orders AS S;
// 9-TOPSHIRIQ
SELECT E.empid,E.firstname,E.lastname,E.titleofcourtesy,
CASE
WHEN E.titleofcourtesy IN ('Ms.','Mrs.') THEN 'Female'
WHEN E.titleofcourtesy = 'Mr.' THEN 'Male'
ELSE 'Unknown'
END AS gender
FROM HR.Employees AS E
// 10-TOPSHIRIQ
SELECT C.custid,C.region FROM Sales.Customers AS C
ORDER BY CASE
WHEN C.region IS NULL THEN 1
ELSE 0
END
// 11-TOPSHIRIQ
SELECT O.orderid,O.orderdate,O.custid,O.empid
FROM Sales.Orders AS O
WHERE O.orderdate = (SELECT MAX(orderdate) FROM Sales.Orders)
ORDER BY O.orderid DESC
// 12-topshiriq
SELECT O.custid, O.orderid, O.orderdate, O.empid
FROM Sales.Orders O
WHERE O.custid = (
SELECT TOP 1 custid
FROM Sales.Orders
GROUP BY custid
ORDER BY COUNT(*) DESC
);
// 13-TOPSHIRIQ
SELECT E.empid, E.lastname, E.firstname
FROM HR.Employees E
WHERE E.empid NOT IN (
SELECT O.empid
FROM Sales.Orders O
WHERE O.orderdate >= '2016-05-01'
);
// 14-TOPSHIRIQ
SELECT DISTINCT C.country
FROM Sales.Customers AS C
WHERE C.custid NOT IN (
SELECT DISTINCT E.empid FROM HR.Employees AS E
)
ORDER BY C.country
// 15-TOPSHIRIQ
SELECT O.custid,O.orderid,O.orderdate,O.empid
FROM Sales.Orders AS O
WHERE O.orderdate =
(SELECT MAX(S.orderdate)
FROM Sales.Orders AS S
WHERE S.custid = O.custid)
ORDER BY O.custid
// 16-TOPSHIRIQ
SELECT C.custid,C.companyname FROM Sales.Customers AS C
WHERE C.custid IN (
SELECT DISTINCT O.custid FROM Sales.Orders AS O
WHERE YEAR(O.orderdate ) =2015)
AND C.custid NOT IN (SELECT DISTINCT O.custid FROM Sales.Orders AS O
WHERE YEAR(O.orderdate ) =2016)
// 17-TOPSHIRIQ
SELECT C.custid,C.companyname FROM Sales.Customers AS C
JOIN Sales.Orders AS O ON O.custid = C.custid
JOIN Sales.OrderDetails AS OD ON OD.orderid = O.orderid
WHERE OD.productid = 12
ORDER BY C.companyname
// 18-TOPSHIRIQ
// 19-TOPSHIRIQ
IN checks if a value is within a set of values or results.
EXISTS checks if any rows are returned by a subquery.
// 20-TOPSHIRIQ
// 21-TOPSHIRIQ
SELECT TOP 3 P.Employee_ID,COUNT(P.Project_ID) AS PROJECT_COUNT
FROM dbo.Projects AS P
JOIN HR.Employees AS E ON E.empid = P.Employee_ID
GROUP BY P.Employee_ID
HAVING COUNT(P.Project_ID)>=3
// 22-TOPSHIRIQ
SELECT Parent
FROM tblPerson
GROUP BY Parent
HAVING COUNT(DISTINCT ChildGender) = 2;