Справочная информация. В сценарии предоставления в розничном магазине для TSHIRTS для любой комбинации стиля и цвета у нас есть размерная шкала от xs до xxl.
Хотелось бы достичь:
В любом данной недели для любого размера в комбинации style-color-store, имеющей ONHANDUNIT, равной нулю в хранилище, затем исключите все хранилище style-color-store (со всеми другими размерами) для этой конкретной недели из результирующих данных.
Может Кто-нибудь, пожалуйста, помогите построить эту логику c?
Код выглядит следующим образом:
SELECT
mat."BASIC_MATERIAL" As SKU,
mat."DIVISION" As Division,
mat."DEPARTMENT" As Department,
RIGHT(mat."STYLE",5) AS Base_Style_ID,
mat."COLOR" As Color_Code,
mat."SIZE" As SizeKey,
r."WEEK" As Fiscal_Week,
r."STORE" As Store_Location,
IFNULL(SUM(CASE WHEN (r."CHANNEL" = 'MARKET' AND r."STORE" NOT IN ('abcd','def','xyz')) THEN r."ONHANDUNIT" ELSE 0 END),0) As Store_OHU
FROM GLOBAL_REPORT As r
JOIN MATERIAL As mat On r."aMAT" = mat."bMAT"
WHERE r."WEEK" BETWEEN '201940' AND '202012'
AND mat."DEPARTMENT" = 'TSHIRTS'
GROUP BY
mat."BASIC_MATERIAL",
mat."DIVISION",
mat."DEPARTMENT",
mat."STYLE",
mat."COLOR",
mat."SIZE",
r."WEEK",
r."STORE"
Данные BW для примера будут выглядеть следующим образом:
SKU Base_Style_ID Color_Code SizeKey Store_Location Week Store_OHU
12345BK0001S MKNITS TSHIRT 12345 BK0001 S 1/2020 111 50
12345BK0001M MKNITS TSHIRT 12345 BK0001 M 1/2020 111 10
12345BK0001L MKNITS TSHIRT 12345 BK0001 L 1/2020 111 20
12345BK0001S MKNITS TSHIRT 12345 BK0001 S 2/2020 112 50
12345BK0001M MKNITS TSHIRT 12345 BK0001 M 2/2020 112 0
12345BK0001L MKNITS TSHIRT 12345 BK0001 L 2/2020 112 20
Данные ВЫХОДА будут такими, как показано ниже, за исключением недели 2/2020, так как размер M имеет 0 на единицу в магазине.
SKU Base_Style_ID Color_Code SizeKey Store_Location Week Store_OHU
12345BK0001S MKNITS TSHIRT 12345 BK0001 S 1/2020 111 50
12345BK0001M MKNITS TSHIRT 12345 BK0001 M 1/2020 111 10
12345BK0001L MKNITS TSHIRT 12345 BK0001 L 1/2020 111 20