Advertisement
laris_fdz

Untitled

Dec 19th, 2022
1,009
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. select prop_date::date as prop_date, reg, dep, store
  2.    , s.supp
  3.    , s2.suppname
  4.      , sum (CASE WHEN PROP IS null and (ORD_LS IS not NULL or ORD_EM IS NOT NULL or ORD_RD IS NOT NULL or ORD_RM IS NOT null or ORD_CC IS NOT null)
  5.             THEN QTY-coalesce(BBXD_LINES_QTY,0)-coalesce(rms_reject_items,0)    
  6.             ELSE 0 END) REP_ITEMS_RMS --Артикулы RMS
  7.  
  8.      , sum (CASE when PROP is not null and (ORD_LS IS not NULL or ORD_EM IS NOT NULL or ORD_RD IS NOT NULL or ORD_RM IS NOT null or ORD_CC IS NOT null)
  9.             THEN CHANGED_QTY-coalesce(rms_reject_items,0)
  10.             ELSE 0 END) REP_ITEMS_WITH_CHANGES_IN_GOLD  --Артикулы с изменениями в GOLD
  11.  
  12.      , sum (CASE when PROP is not null and (ORD_LS IS not NULL or ORD_EM IS NOT NULL or ORD_RD IS NOT NULL or ORD_RM IS NOT null or ORD_CC IS NOT null)
  13.             THEN QTY - CHANGED_QTY
  14.             -- - coalesce(rms_reject_items,0)
  15.             -coalesce(BBXD_LINES_QTY,0)
  16.             ELSE 0 END) REP_ITEMS_WO_CHANGES_IN_GOLD  --Артикулы без изменений в GOLD
  17.  
  18.      , sum(CASE when (ORD_LS IS not NULL or ORD_EM IS NOT NULL or ORD_RD IS NOT NULL or ORD_RM IS NOT null or ORD_CC IS NOT null)
  19.             then coalesce(ORD_PRICE,0)-coalesce(BBXD_AMOUNT,0 )
  20.             else 0 end ) ORD_AMOUNT -- Стоимость по заказам Используется? в ord_amount_money учтены отказы
  21.            
  22.      , sum(CASE when  (ORD_LS IS not NULL or ORD_EM IS NOT NULL or ORD_RD IS NOT NULL or ORD_RM IS NOT null or ORD_CC IS NOT null)
  23.             then PROP_PRICE-coalesce(BBXD_AMOUNT,0)
  24.             else 0 end)  PROP_AMOUNT --Стоимость по предложениям
  25.  
  26.      , sum(CASE WHEN PROP IS null and (ORD_LS IS not NULL or ORD_EM IS NOT NULL or ORD_RD IS NOT NULL or ORD_RM IS NOT null or ORD_CC IS NOT null)  
  27.             THEN QTY-coalesce(BBXD_LINES_QTY,0) - coalesce(rms_reject_items,0)
  28.             ELSE 0 END)
  29.            
  30.         + sum(CASE when PROP is not null and (ORD_LS IS not NULL or ORD_EM IS NOT NULL or ORD_RD IS NOT NULL or ORD_RM IS NOT null or ORD_CC IS NOT null)  
  31.                 THEN CHANGED_QTY - coalesce(rms_reject_items,0)
  32.                 ELSE 0 END)
  33.                
  34.         + sum(CASE when PROP is not null and (ORD_LS IS not NULL or ORD_EM IS NOT NULL or ORD_RD IS NOT NULL or ORD_RM IS NOT null or ORD_CC IS NOT null)  
  35.                 THEN QTY - CHANGED_QTY -
  36.                 --coalesce(rms_reject_items,0)
  37.                 -coalesce(BBXD_LINES_QTY,0)
  38.                 ELSE 0 END)  as total_cnt
  39.                
  40.     , target_dep
  41.     , target_reg
  42.     , target_store
  43.     , supplier_type
  44.     , sum(case WHEN PROP IS NULL OR (ORD_LS IS NULL AND ORD_EM IS NULL AND ORD_RD IS NULL AND ORD_RM IS NULL AND ORD_CC IS NOT null) THEN QTY - coalesce(rms_reject_items,0) - coalesce(BBXD_LINES_QTY,0) ELSE 0
  45.         END) REP_ITEMS_RMS_MONEY -- Артикулы RMS (для образования полей REP_RMS_PERCENT, REP_GOLD_WITH_CHANGES_PERCENT и REP_GOLD_WO_CHANGES_PERCENT)
  46.  
  47.         , sum(CASE  WHEN PROP IS NOT NULL THEN CHANGED_QTY - coalesce(rms_reject_items,0)
  48.         ELSE 0 END) REP_ITEMS_WITH_CHANGES_IN_GOLD_MONEY --Артикулы с изменениями в GOLD (для образования полей REP_RMS_PERCENT, REP_GOLD_WITH_CHANGES_PERCENT и REP_GOLD_WO_CHANGES_PERCENT)
  49.    
  50.         , sum(CASE when PROP IS NOT NULL AND (ORD_LS IS NOT NULL OR ORD_EM IS NOT NULL OR ORD_RD IS NOT NULL OR ORD_RM IS NOT null or ORD_CC IS NOT null)
  51.             THEN QTY - CHANGED_QTY
  52.             -- - coalesce(rms_reject_items,0)
  53.             ELSE 0 END) REP_ITEMS_WO_CHANGES_IN_GOLD_MONEY --Артикулы без изменений в GOLD (для образования полей REP_RMS_PERCENT, REP_GOLD_WITH_CHANGES_PERCENT и REP_GOLD_WO_CHANGES_PERCENT)
  54.            
  55.     , sum(
  56.     (case when rms_reject_items=qty and prop is null then 0 else ORD_PRICE end)
  57.      - coalesce(BBXD_AMOUNT,0)) ORD_AMOUNT_MONEY
  58.     , sum(PROP_PRICE) PROP_AMOUNT_MONEY
  59.     , sum( case when  rms_reject_items=qty and prop is null then 0 else coalesce(POSITIVE_CORRECTION,0) end) REP_POSITIVE_CORRECTION_MONEY
  60.     , sum(coalesce(NEGATIVE_CORRECTION,0) - coalesce(rms_reject_qty,0)) REP_NEGATIVE_CORRECTION_MONEY
  61.    
  62.     , sum(CASE WHEN PROP IS NULL OR (ORD_LS IS NULL AND ORD_EM IS NULL AND ORD_RD IS NULL AND ORD_RM IS null and ORD_CC IS NOT null)
  63.         THEN QTY-coalesce(BBXD_LINES_QTY,0)-coalesce(rms_reject_items,0) ELSE 0 END)
  64.        
  65.         + sum(CASE WHEN PROP IS NOT NULL
  66.               THEN CHANGED_QTY-coalesce(rms_reject_items,0)
  67.               ELSE 0 END)
  68.              
  69.         + sum(CASE when PROP IS NOT NULL AND (ORD_LS IS NOT NULL OR ORD_EM IS NOT NULL OR ORD_RD IS NOT NULL OR ORD_RM IS NOT null or ORD_CC IS NOT null)
  70.                 THEN QTY - CHANGED_QTY
  71.                 -- -coalesce(rms_reject_items,0)
  72.                 ELSE 0 END)  as total_cnt_MONEY
  73.  
  74.        , sum (case when (coalesce(ORD_PRICE,0)-coalesce(BBXD_AMOUNT,0)) = 0
  75.                 then 0
  76.                  else ( ( coalesce(ORD_PRICE,0)-coalesce(BBXD_AMOUNT,0)) - PROP_PRICE) /
  77.        (CASE WHEN (coalesce(ORD_PRICE,0)-coalesce(BBXD_AMOUNT,0)) = 0
  78.        THEN 0.00001 ELSE coalesce(ORD_PRICE,0)-coalesce(BBXD_AMOUNT,0)
  79.        END) end ) as correction
  80.  
  81. FROM replenishment_marts.v_gold_statistics s
  82. inner join
  83. (select supp, suppname, row_number () over (partition by supp order by suppname) supp_row
  84. FROM replenishment_marts.v_gold_statistics s ) s2 on s.supp = s2.supp and supp_row = 1
  85. where (ORD_LS IS not NULL or ORD_EM IS NOT NULL or ORD_RD IS NOT NULL or ORD_RM IS NOT null or ORD_CC IS NOT null)
  86. GROUP BY reg, dep, store, prop_date::date, s.supp, s2.suppname, target_dep, target_reg, target_store, supplier_type;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement