Я начал изучать SQL и у меня есть следующие таблицы (они содержат гораздо больше данных, но только те, которые кажутся необходимыми для решения проблемы).
ПУНКТ:
item_keys deparment_desc
----------------------------
10001 Womens Clothing
10002 Womens Clothing
10003 Sporting Goods
ПРОДАЖИ:
cur_trn_date item_key store_key tot_sls_qty
----------------------------------------------
1999-12-01 10001 1 8346.17
1999-12-01 10001 2 235.40
.
.
.
2001-12-31 2001-12-31 10 1108.33
STORE:
store_key type_key type_desc
--------------------------------
1 1 Super Malls
2 2 Strip Malls
3 3 Retail Only
.
.
.
10 1 Super Malls
(извините, если на самом деле это не выглядит действительно структурированным, я не смог найти способ создания таблиц в StackOverflow)
То, что я хотел бы получить, это общий объем продаж за каждый год, а также процентное изменение по сравнению с прошлым годом. Все это для всех возможных комбинаций отдела_дес c и типа_дес c. Я попробовал это с помощью следующего кода, но, похоже, проблема с CUBE и, возможно, функцией LAG. Это неожиданный знак.
SELECT YEAR(s.cur_trn_date) AS year, SUM(s.tot_sls_qty) AS sales,
(SUM(s.tot_sls_qty) - LAG(SUM(s.tot_sls_qty)) / SUM(s.tot_sls_qty)) AS difference
FROM sales s, item i, store st
GROUP BY YEAR(s.cur_trn_date)
CUBE(i.departmend_desc, st.type_desc)
WHERE s.item_key = i.item_key
AND s.store_key = st.store_key
Если кто-нибудь может помочь или дать мне подсказку, в чем может быть проблема, это было бы здорово.