From f91b51a463c7e1213aa30932232e1ee26611e3f3 Mon Sep 17 00:00:00 2001 From: szymon <s176528@student.pg.edu.pl> Date: Mon, 22 Nov 2021 15:19:26 +0100 Subject: [PATCH] Cwiczenia SQL lab --- cw.sql | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 cw.sql diff --git a/cw.sql b/cw.sql new file mode 100644 index 0000000..e56e3ff --- /dev/null +++ b/cw.sql @@ -0,0 +1,112 @@ +-- ITEMID, SUBCLASS, CLASS, DEPARTMENT, BRAND +SELECT TOP 100 a.ITEMID, b.SubclassName, c.ClassName, d.DepartmentName, e.BrandName +FROM dw.Item a +JOIN dw.Subclass b +ON a.SubclassID = b.SubclassID +JOIN dw.Class c +ON b.ClassID = c.ClassID +JOIN dw.Department d +ON c.DepartmentID = d.DepartmentID +JOIN dw.Brand e +ON d.BrandID = e.BrandID + +-- Stylecolor, SUBCLASS, CLASS, DEPARTMENT, BRAND +SELECT DISTINCT a.StyleColor, b.SubclassName, c.ClassName, d.DepartmentName, e.BrandName +FROM dw.Item a +JOIN dw.Subclass b +ON a.SubclassID = b.SubclassID +JOIN dw.Class c +ON b.ClassID = c.ClassID +JOIN dw.Department d +ON c.DepartmentID = d.DepartmentID +JOIN dw.Brand e +ON d.BrandID = e.BrandID +ORDER BY StyleColor + + +-- SUBCLASS, CLASS, DEPARTMENT, BRAND +SELECT TOP 100 b.SubclassName, c.ClassName, d.DepartmentName, e.BrandName +FROM dw.Subclass b +JOIN dw.Class c +ON b.ClassID = c.ClassID +JOIN dw.Department d +ON c.DepartmentID = d.DepartmentID +JOIN dw.Brand e +ON d.BrandID = e.BrandID + +-- Sprzedaz dla Galeri Bałtyckiej za maj 2021 po depach, DEP SLSU +SELECT e.DepartmentName, SUM(a.SLSU) AS SLSU_Total +FROM demo.Sales a +JOIN dw.Item b +ON a.ITEMID = b.ITEMID +JOIN dw.Subclass c +ON b.SubclassID = c.SubclassID +JOIN dw.Class d +ON c.ClassID = d.ClassID +JOIN dw.Department e +ON d.DepartmentID = e.DepartmentID +WHERE a.StoreID = (SELECT StoreID FROM demo.Store WHERE StoreMale = 'Galeria Baltycka') +AND a.TransactionDate LIKE '202105%' +GROUP BY e.DepartmentName + + +-- Najlepsze 3 tygodnie dzień po dniu dla stylokoloru \ +-- w salonie z najwieksza sprzedaza w trzech najlepszych tygodniach +-- STCL, ITEMID, STORE, Date, EOP, SLS + +;WITH SLSU_Total_Best_3Weeks AS ( +SELECT TOP 1 a.StoreID, b.StyleColor, SUM(a.SLSU) AS SLSU_Total +FROM demo.Best3WeeksPerDay a +JOIN dw.Item b +ON a.ITEMID = b.ITEMID +GROUP BY a.StoreID, b.StyleColor +ORDER BY SLSU_Total DESC +) + +SELECT TOP 100 c.StyleColor, b.ITEMID, b.StoreID, b.Date, b.EOPU, b.SLSU +FROM demo.Best3WeeksPerDay b +LEFT JOIN dw.Item c +ON b.ITEMID = c.ITEMID +WHERE b.StoreID = (SELECT StoreID FROM SLSU_Total_Best_3Weeks) +AND c.StyleColor = (SELECT StyleColor FROM SLSU_Total_Best_3Weeks) + + +-- Zestawienie tygodni zycia produktu z najepszymi trzema tygodniami +-- - ile bylo przypadkow ze tydzien byl jednym z trzech najlepszych +-- WEEK, CasesCount + +-- per STCL gdy jest najlepszym +SELECT STCL, + StclWeek, + SUM( + CASE + WHEN WeekRank = 1 THEN 1 + ELSE 0 + END + ) AS CasesCount +FROM demo.Best3WeeksPerWeek +GROUP BY STCL, StclWeek +ORDER BY STCL, StclWeek + +-- all gdy jest najlepszym +SELECT StclWeek, + SUM( + CASE + WHEN WeekRank = 1 THEN 1 + ELSE 0 + END + ) AS CasesCount +FROM demo.Best3WeeksPerWeek +GROUP BY StclWeek +ORDER BY StclWeek + +-- all gdy jest jednym z trzech najlepszych +SELECT StclWeek, + COUNT(*) AS CasesCount +FROM demo.Best3WeeksPerWeek +GROUP BY StclWeek +ORDER BY StclWeek + + + + -- GitLab