Мне нужно выполнить запрос, чтобы показать название месяца, в котором продукт 5 был продан, название продукта, с понедельника по воскресенье для каждого дня, сколько было продано (например, за понедельник было продано 30, 10, 60 и я должен суммировать его и показать в столбце Понедельник как 100. Я ожидаю, что у меня будет функциональная таблица со всеми правильно показанными данными. Я только работал над Oracle для этой задачи. Все, что я сделал, за исключением суммы суммы за проданный за каждый день, а затем я должен объединить, чтобы у меня было 3 строки для каждого месяца, апреля, мая и июня со всеми данными.
select t.calendar_month_name as "SALES_MONTH",
upper(concat(substr(p.prod_name,1,instr(p.prod_name,' ')-2),' &'))
||''|| concat(substr(p.prod_name,-1,instr(' ',p.prod_name)-1), '')
||''|| concat(substr(p.prod_name,instr(p.prod_name, ' ')), '')
||'('|| p.prod_id ||')'|| '' PRODUCT_NAME, t.calendar_month_number, t.time_id, t.DAY_NUMBER_IN_WEEK,
s.amount_sold, count(distinct t.day_number_in_week),
sum(case when t.day_number_in_week = 1 then s.amount_sold else 0 end) as MONDAY
from products p
join sales s on p.prod_id = s.prod_id
join times t on t.time_id = s.TIME_ID
where
p.prod_id = 5 and
s.time_id = t.time_id and
t.calendar_year = 2000 and
t.calendar_quarter_number = 2 and
s.amount_sold > 0
group by t.calendar_month_name, upper(concat(substr(p.prod_name,1,instr(p.prod_name,' ')-2),' &'))
||''|| concat(substr(p.prod_name,-1,instr(' ',p.prod_name)-1), '')
||''|| concat(substr(p.prod_name,instr(p.prod_name, ' ')), '')
||'('|| p.prod_id ||')'|| '',t.calendar_month_number, t.time_id, t.DAY_NUMBER_IN_WEEK,
s.amount_sold
order by t.calendar_month_number, t.time_id, t.day_number_in_week;