diff --git a/Scripts/03-01.sql b/Scripts/03-01.sql index 32009e2..83be51d 100644 --- a/Scripts/03-01.sql +++ b/Scripts/03-01.sql @@ -10,3 +10,5 @@ SELECT soldYear, FROM cte GROUP BY soldYear ORDER BY soldYear + + diff --git a/Scripts/04-01.sql b/Scripts/04-01.sql index ecce97d..13cd914 100644 --- a/Scripts/04-01.sql +++ b/Scripts/04-01.sql @@ -35,3 +35,4 @@ INNER JOIN inventory inv INNER JOIN model mdl ON mdl.modelId = inv.modelId GROUP BY emp.firstName, emp.lastName, mdl.model +order by emp.employeeId diff --git a/myscripts/electricCarsSales.sql b/myscripts/electricCarsSales.sql new file mode 100644 index 0000000..5fcaf6e --- /dev/null +++ b/myscripts/electricCarsSales.sql @@ -0,0 +1,9 @@ +select + s.salesid, i.modelId, s.soldDate, s.salesAmount +from sales as s +inner join + inventory as i on i.inventoryId = s.inventoryId +WHERE + i.modelId in + (select modelid from model +where enginetype = 'Electric'); \ No newline at end of file diff --git a/myscripts/employee_manager_list.sql b/myscripts/employee_manager_list.sql new file mode 100644 index 0000000..3f52748 --- /dev/null +++ b/myscripts/employee_manager_list.sql @@ -0,0 +1,10 @@ +SELECT + e.firstName, + e.lastName, + m.firstName, + m.lastName +FROM + employee AS e +INNER JOIN employee AS m + on e.employeeId = m.managerId +LIMIT 5; diff --git a/myscripts/least_Max_Car_Sold_By_Each_Emp.sql b/myscripts/least_Max_Car_Sold_By_Each_Emp.sql new file mode 100644 index 0000000..9156e81 --- /dev/null +++ b/myscripts/least_Max_Car_Sold_By_Each_Emp.sql @@ -0,0 +1,14 @@ + +SELECT + emp.employeeid, emp.firstname, emp.lastname, + min(sale.salesamount) as "min_sold", + max(sale.salesamount) as "max_sold", + sale.soldDate +FROM employee as emp +INNER JOIN sales as sale + on emp.employeeid = sale.employeeid +WHERE + sale.soldDate >= date('now', 'start of year') +GROUP BY + sale.employeeid +ORDER BY emp.employeeId ; diff --git a/myscripts/moreThan5.sql b/myscripts/moreThan5.sql new file mode 100644 index 0000000..f309cb6 --- /dev/null +++ b/myscripts/moreThan5.sql @@ -0,0 +1,15 @@ +-- with ctc as ( +SELECT + emp.employeeid, emp.firstname, emp.lastname, + count(sale.employeeid) as "Total_car_sold" +FROM employee as emp +INNER JOIN sales as sale + on emp.employeeid = sale.employeeid +WHERE sale.soldDate >= date('now','start of year') +GROUP BY + sale.employeeid +HAVING + "Total_car_sold" > 5 ; +-- ) + + diff --git a/myscripts/numberOfCarsSoldPerEmp.sql b/myscripts/numberOfCarsSoldPerEmp.sql new file mode 100644 index 0000000..d3aa900 --- /dev/null +++ b/myscripts/numberOfCarsSoldPerEmp.sql @@ -0,0 +1,9 @@ + +SELECT + emp.employeeid, emp.firstname, emp.lastname, count(sale.employeeid) as "Total_car_sold" +FROM employee as emp +INNER JOIN sales as sale + on emp.employeeid = sale.employeeid +GROUP BY + sale.employeeid +ORDER BY "Total_car_sold" DESC ; diff --git a/myscripts/query.sql b/myscripts/query.sql new file mode 100644 index 0000000..ceb497d --- /dev/null +++ b/myscripts/query.sql @@ -0,0 +1,18 @@ +SELECT name FROM sqlite_master +WHERE type='table'; + + +Select * from sales +LIMIT 5; + +select * from customer +limit 5; + +select * from employee +limit 5; + +select * from inventory +limit 5; + +select * from model +limit 20; \ No newline at end of file diff --git a/myscripts/rankTheCar.sql b/myscripts/rankTheCar.sql new file mode 100644 index 0000000..b2060da --- /dev/null +++ b/myscripts/rankTheCar.sql @@ -0,0 +1,16 @@ +SELECT + e.firstname, e.lastname, m.model, + count(m.model) as 'numberSold', + rank() OVER (PARTITION by s.employeeId + order by count(m.model) desc ) as rank +from sales as s +inner join employee as e + on s.employeeid = e.employeeid +inner join inventory as i + on i.inventoryid = s.inventoryid +inner join model as m + on m.modelid = i.modelid +GROUP BY + s.employeeId, m.modelId +ORDER by + s.employeeId; diff --git a/myscripts/runningTotal.sql b/myscripts/runningTotal.sql new file mode 100644 index 0000000..cb575c6 --- /dev/null +++ b/myscripts/runningTotal.sql @@ -0,0 +1,13 @@ +with cte as +(SELECT + strftime('%m',solddate) as month, + strftime('%Y',solddate) as year, + sum(salesamount) as 'monthsale' +from sales +GROUP BY year, month +ORDER BY soldDate) + +select year, month, format('$%.2f',monthsale) as 'monthsale', + sum(monthsale) over (PARTITION BY year order by month ) as 'annual_total' +from cte +order by year, month; \ No newline at end of file diff --git a/myscripts/sale_cust_data.sql b/myscripts/sale_cust_data.sql new file mode 100644 index 0000000..cf8a461 --- /dev/null +++ b/myscripts/sale_cust_data.sql @@ -0,0 +1,24 @@ +(SELECT + c.customerid, c.firstname, c.lastname, c.city, s.salesid, s.salesamount +FROM customer as C +inner join sales as s + on c.customerid = s.customerid +) +UNION +(SELECT + c.customerid, c.firstname, c.lastname, c.city, s.salesid, s.salesamount +FROM customer as C +LEFT join sales as s + on c.customerid = s.customerid +WHERE + s.salesid is NULL +) +UNION +(SELECT + c.customerid, c.firstname, c.lastname, c.city, s.salesid, s.salesamount +FROM customer as C +RIGHT join sales as s + on c.customerid = s.customerid +WHERE + c.customerid is NULL +) \ No newline at end of file diff --git a/myscripts/salesPerMonth.sql b/myscripts/salesPerMonth.sql new file mode 100644 index 0000000..a02c311 --- /dev/null +++ b/myscripts/salesPerMonth.sql @@ -0,0 +1,20 @@ +SELECT + emp.firstName, + emp.lastName, + SUM(CASE WHEN strftime('%m', soldDate) = '01' THEN salesAmount ELSE 0 END) AS JanSales, + SUM(CASE WHEN strftime('%m', soldDate) = '02' THEN salesAmount ELSE 0 END) AS FebSales, + SUM(CASE WHEN strftime('%m', soldDate) = '03' THEN salesAmount ELSE 0 END) AS MarSales, + SUM(CASE WHEN strftime('%m', soldDate) = '04' THEN salesAmount ELSE 0 END) AS AprSales, + SUM(CASE WHEN strftime('%m', soldDate) = '05' THEN salesAmount ELSE 0 END) AS MaySales, + SUM(CASE WHEN strftime('%m', soldDate) = '06' THEN salesAmount ELSE 0 END) AS JunSales, + SUM(CASE WHEN strftime('%m', soldDate) = '07' THEN salesAmount ELSE 0 END) AS JulSales, + SUM(CASE WHEN strftime('%m', soldDate) = '08' THEN salesAmount ELSE 0 END) AS AugSales, + SUM(CASE WHEN strftime('%m', soldDate) = '09' THEN salesAmount ELSE 0 END) AS SepSales, + SUM(CASE WHEN strftime('%m', soldDate) = '10' THEN salesAmount ELSE 0 END) AS OctSales, + SUM(CASE WHEN strftime('%m', soldDate) = '11' THEN salesAmount ELSE 0 END) AS NovSales, + SUM(CASE WHEN strftime('%m', soldDate) = '12' THEN salesAmount ELSE 0 END) AS DecSales +FROM sales sls +INNER JOIN employee emp ON sls.employeeId = emp.employeeId +WHERE sls.soldDate >= '2021-01-01' AND sls.soldDate < '2022-01-01' +GROUP BY emp.firstName, emp.lastName +ORDER BY emp.lastName, emp.firstName; diff --git a/myscripts/salesPerYear.sql b/myscripts/salesPerYear.sql new file mode 100644 index 0000000..8c4dc25 --- /dev/null +++ b/myscripts/salesPerYear.sql @@ -0,0 +1,12 @@ +with ctc as +(SELECT + strftime('%Y', solddate) as 'soldyear', + salesAmount +from sales +) +select soldyear, format('$%.2f',round(sum(salesAmount),5)) as 'total_sale' +FROM ctc +GROUP BY soldYear +ORDER BY soldYear; + +-- FORMAT("$%.2f", sum(salesAmount)) AS AnnualSales \ No newline at end of file diff --git a/myscripts/this_last_month.sql b/myscripts/this_last_month.sql new file mode 100644 index 0000000..c146000 --- /dev/null +++ b/myscripts/this_last_month.sql @@ -0,0 +1,12 @@ +with cte as +(select + strftime('%Y-%m', solddate) as monthsold, + count(salesId) as 'numberof_cars' +from sales +GROUP BY monthsold) + +select monthsold, numberof_cars as ThisMonth, + LAG(numberof_cars, 1,0) over calmonth as PreviousMonth +from cte +WINDOW calmonth as (ORDER BY monthsold) +ORDER by monthsold \ No newline at end of file diff --git a/myscripts/zero_sale_saleperson.sql b/myscripts/zero_sale_saleperson.sql new file mode 100644 index 0000000..5caf677 --- /dev/null +++ b/myscripts/zero_sale_saleperson.sql @@ -0,0 +1,11 @@ +select + emp.firstname, emp.lastname, emp.title, emp.startdate, + sale.salesId +FROM + employee AS emp +LEFT JOIN sales as sale ON + emp.employeeId = sale.employeeid +WHERE + emp.title = "Sales Person" + AND + sale.salesAmount is NULL;