BEGIN; --SELECT dsm, director, quota_rep_descr, billto_group, shipto_group, sum(value_usd ), count(*) from rlarp.osm_pool where order_season = 2021 group by dsm, director, quota_rep_descr, billto_group, shipto_group; UPDATE rlarp.osm_pool o SET chan = CASE SUBSTRING(b.bvclas,2,3) --if the bill to class is ditsributor, then it's either warehouse or drop WHEN 'DIS' THEN --if the ship-to is a different name than the bill-to then it's drop, otherwise it's warehouse CASE SUBSTRING(s.bvclas,2,3) WHEN 'DIS' THEN 'WHS' ELSE 'DRP' END --CASE WHEN RTRIM(SUBSTRING(LTRIM(SC.BVADR7)||SC.BVNAME,1,30)) = RTRIM(SUBSTRING(LTRIM(BC.BVADR7)||BC.BVNAME,1,30)) THEN 'DIS' ELSE 'DRP' END --everything else does not involve a distributor and is considered direct ELSE 'DIR' END, chansub = CASE SUBSTRING(b.bvclas,2,3) WHEN 'DIS' THEN --if the ship-to is a different name than the bill-to then it's drop, otherwise it's warehouse CASE SUBSTRING(s.bvclas,2,3) WHEN 'DIS' THEN 'WHS' ELSE CASE SUBSTRING(s.bvclas,1,1) WHEN 'R' THEN 'RDP' ELSE 'DRP' END END WHEN 'MAS' THEN 'RMN' WHEN 'NAT' THEN 'RMN' ELSE CASE SUBSTRING(s.bvclas,1,1) WHEN 'R' THEN 'RDI' ELSE 'DIR' END END, dsm = ------------quota rep column-------------- CASE WHEN COALESCE(substring(ming_descr,1,3),'') = 'B52' THEN 'PW' ELSE --if the gl expense code is 1RE use the retail rep assigned to the bill-to customer if available CASE WHEN COALESCE(o.segm,'') = 'Retail' AND COALESCE(cu.currep,'') <> '' THEN cu.currep --default logic ELSE CASE SUBSTR(b.bvclas,2,3) WHEN 'DIS' THEN s.bvsalm ELSE b.bvsalm END END END, billto_group = CASE b.bvadr6 WHEN '' THEN b.bvname ELSE b.bvadr6 END, shipto_group = CASE s.bvadr6 WHEN '' THEN s.bvname ELSE s.bvadr6 END FROM lgdat.cust b, lgdat.cust s, lgpgm.usrcust cu WHERE b.bvcust = rtrim(substring(o.bill_cust_descr,1,8)) AND s.bvcust = rtrim(substring(o.ship_cust_descr,1,8)) AND cu.cucust = b.bvcust; --BEGIN; UPDATE rlarp.osm_pool o SET quota_rep_descr = c.a30 ,director = COALESCE(Q.DIR,'Other') FROM lgdat.code c ,rlarp.qrh q WHERE LTRIM(RTRIM(c.a9)) = o.dsm and c.a2 = 'MM' AND q.qr = LTRIM(RTRIM(c.a9)); COMMIT; --ROLLBACK;