Я создаю оператор SQL, который будет возвращать список продуктов и количество каждого из них, которое я могу найти в каждом магазине.
Структура моей таблицы (с некоторыми образцами данных)следующим образом:
productID - size - color - stock - storeID
1 - S - RED01 - 1 - BCN
1 - S - RED01 - 3 - MAD
2 - S - YEL02 - 0 - BCN
2 - S - YEL02 - 2 - MAD
1 - S - RED01 - 1 - BCN2
Мне нужен результат, подобный этому:
productID - size - stockBCN (BCN + BCN2) - stockMAD
1 - S - 2 - 3
2 - S - 0 - 2
Я использую это утверждение, и отлично работает только для уникального продукта
SELECT DISTINCT prodID, size,
(SELECT SUM(stock) FROM stocks WHERE storeID IN ('BCN','BCN2') AND prodID = 1 AND size = 'S' AND color = 'RED01' GROUP BY prodID, size, color) AS stockBCN,
(SELECT SUM(stock) FROM stocks WHERE storeID = 'MAD' AND prodID = 1 AND size = 'S' AND color = 'RED01' GROUP BY prodID, size, color) AS stockMAD,
FROM stocks WHERE storeID IN ('BCN','BCN2','MAD')
AND prodID = (1) AND size = 'S' AND color = 'RED01'
Как я могу изменить его, чтобы он работал для всех строк в таблице?