SQL Создать таблицу по идентификатору заказа и коду продукта между отгрузкой и датой возврата w Wkly Доход - PullRequest
0 голосов
/ 15 октября 2019

Lo Folks o /

Я прошу прощения, если я назвал это неправильно, или моя терминология может отсутствовать, поскольку я самоучка при написании запросов данных SQL;Тем не менее, я застрял в том, как его создать для получения данных, которые мне нужны для еженедельного анализа доходности по продуктам и заказам на основе даты отгрузки заказа и даты возврата.

У меня есть информация о позиции заказа на товар, количество, цену и т. Д. Мне нужно сгруппировать данные по датам начала недели между датами отправки и возврата . затем вычислите доход за эту неделю на основе итоговой суммы позиции за количество недель [и дней в этой неделе], когда продукт отсутствует.

Я также не уверен, есть ли у меня даже разрешения на создание таблицы,если это необходимо, ни с чего начать создание запроса такого типа.

Любая помощь, направление или предложения будут с благодарностью. Спасибо всем o /

Мои необработанные данные выглядят как

My raw data looks like

И превосходное представление о моих ожидаемых результатах

And an excel view of my expected results

1 Ответ

1 голос
/ 17 октября 2019

хммм, сделаю удар - я предполагаю, что у вас есть таблица ORDERS o (первое изображение) и таблица RETURNS r (второе изображение). Также предположим, что в вашей таблице RETURNS есть prodcode - возможно, что-то вроде этого:

WITH return_details as (  
   SELECT o.main_order, o.maincode, o.itemtotal,
          r.ship_date, r.return_date, 
          DATE_TRUNC('WEEK', r.ship_date) as ship_week,
          datediff(day, r.return_date, r.ship_date) as ship2return
   FROM RETURNS r INNER JOIN ORDERS o ON
   r.orderid = o.main_order AND r.prod_code = o.maincode 
)
SELECT rd.main_order as order_id,
       rd.maincode as prod_code,
       rd.ship_week, 
       SUM(rd.itemtotal) as SUM_REVENUE,
       SUM(rd.ship2return) as SUM_DAYSOUT,
       AVG(rd.ship2return) as AVG_DAYSOUT
FROM return_details rd
GROUP BY order_id, prod_code, ship_week;
...