Advertisement
laris_fdz

Untitled

Jan 27th, 2023
1,206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.85 KB | None | 0 0
  1. DROP TABLE IF EXISTS tmp_cur_forecast ;
  2. CREATE TEMPORARY TABLE tmp_cur_forecast AS
  3. --определяем самый актуальный прогноз на каждую неделю
  4. WITH gf_prev AS (
  5. SELECT f.code_lm::text AS item,
  6.     f.site_code  AS loc,
  7.     f.estm_forecast AS forecast,  
  8.     f.calculation_date ,
  9.     concat(f."year", f.week_num)::INT AS sem,
  10.     ROW_NUMBER() OVER(partition BY f.code_lm, f.site_code, concat(f."year", f.week_num) ORDER BY f.calculation_date DESC) AS rn
  11.     FROM replenishment_marts.v_gold_forecast f
  12.     WHERE f.site_code = 13
  13.     ),
  14. --отбираем самый актуальный прогноз для недели
  15. gf AS (SELECT * FROM gf_prev WHERE rn = 1)  
  16. SELECT gf.item, gf.loc, gf.forecast, sem.semddeb, sem.semdfin
  17. FROM gf
  18. JOIN gold_refgwr_ods.v_fctsem sem ON gf.sem = sem.semnsem
  19. ;
  20.  
  21. --первые чеки (я тут уже просто взяла артикулы, проданные за два дня в октябре, чтобы найти хоть какой-то прогноз по ним
  22. WITH new_i AS (
  23. SELECT DISTINCT a.store_id, a.item, a.opened_dttm::DATE
  24.     FROM (
  25.     SELECT rl.store_id, rl.line_item_id::text AS item, rl.opened_dttm::DATE,
  26.         ROW_NUMBER() OVER(partition BY rl.store_id, rl.line_item_id ORDER BY rl.opened_dttm ASC) rn
  27.     FROM dds.v_receipt_lines_public rl
  28.     WHERE rl.store_id=13
  29.     ) a
  30.     WHERE --a.rn = 1 and
  31.     a.opened_dttm::DATE BETWEEN '2022-10-01'::DATE
  32.     -- - interval '42 days'
  33.     AND '2022-10-02'::DATE
  34.     )
  35. SELECT new_i.store_id, new_i.item, tcf.item AS item_f, --new_i.opened_dttm,
  36. tcf.forecast,
  37. CASE WHEN forecast notnull THEN 'есть прогноз'
  38. ELSE 'нет прогноза' END AS ff
  39. FROM new_i
  40. LEFT JOIN tmp_cur_forecast tcf ON TRIM(tcf.item) = TRIM(new_i.item) AND
  41. tcf.loc = new_i.store_id --and tcf.semdfin opened_dttm
  42. ORDER BY 3 DESC
  43.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement