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