Я начал изучать 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_key type_key type_desc
--------------------------------
1 1 Super Malls
2 2 Strip Malls
3 3 Retail Only
.
.
.
10 1 Super Malls
(Извините, если это не очень структурировано, я не смог найти способ создавать таблицы в StackOverflow)
Что я хотел бы получить, так это общий объем продаж за каждый год, а также процентное изменение по сравнению с прошлым годом. Все это для всех возможных комбинаций Department_desc и type_desc. Я попробовал это со следующим кодом, но, похоже, возникла проблема с 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
Если бы кто-нибудь мог помочь или дать мне понять, в чем может быть проблема, это было бы здорово.
WHERE
предшествуетGROUP BY
. - person jarlh   schedule 20.01.2020