128 lines
3.6 KiB
SQL
128 lines
3.6 KiB
SQL
DROP TABLE IF EXISTS public.fw_ods_monthly;
|
|
|
|
CREATE TABLE public.fw_ods_monthly (
|
|
syspk serial NOT NULL unique,
|
|
client_id int ,
|
|
function_id text ,
|
|
d1l1_syspk int ,
|
|
d1l1_id int ,
|
|
d1l1_name text ,
|
|
d1l2_syspk int ,
|
|
d1l2_id int ,
|
|
d1l2_name text ,
|
|
d1l3_syspk int ,
|
|
d1l3_id int ,
|
|
d1l3_name text ,
|
|
d1l4_syspk int ,
|
|
d1l4_id int ,
|
|
d1l4_name text ,
|
|
d2l1_syspk int ,
|
|
d2l1_id int ,
|
|
d2l1_name text ,
|
|
d2l2_syspk int ,
|
|
d2l2_id int ,
|
|
d2l2_name text ,
|
|
d2l3_syspk int ,
|
|
d2l3_id int ,
|
|
d2l3_name text ,
|
|
d3l1_syspk int ,
|
|
d3l1_id int ,
|
|
d3l1_name text ,
|
|
d4l1_date timestamp ,
|
|
d4l1_yyyy int ,
|
|
d4l1_qq int ,
|
|
d4l1_mm int ,
|
|
d4l1_ww int ,
|
|
d4l1_dd int ,
|
|
d5l1_syspk int ,
|
|
d5l1_id int ,
|
|
d5l1_name text ,
|
|
d5l2_syspk int ,
|
|
d5l2_id int ,
|
|
d5l2_name text ,
|
|
d5l3_syspk int ,
|
|
d5l3_name text ,
|
|
d6l1_id int ,
|
|
d6l1_name text ,
|
|
m1001 int ,
|
|
m1002 int ,
|
|
m1003 int ,
|
|
m1004 int ,
|
|
m1005 int ,
|
|
created_by text ,
|
|
updated_by text ,
|
|
create_time timestamp DEFAULT CURRENT_TIMESTAMP ,
|
|
update_time timestamp
|
|
);
|
|
|
|
|
|
insert into fw_ods_monthly(client_id, d1l1_name, d1l2_name, d1l3_name, d1l4_id, d2l1_name, d4l1_yyyy, d4l1_qq, d4l1_mm, d5l1_id, d5l1_name, m1001, m1002, m1003, m1004)
|
|
|
|
select
|
|
10 as client_id,
|
|
c.product_category as d1l1_name,
|
|
c.product_family as d1l2_name,
|
|
c.product_type as d1l3_name,
|
|
c.id as d1l4_id,
|
|
d.country as d2l1_name,
|
|
date_part('year'::text,b.txn_time) as d4l1_yyyy,
|
|
date_part('quarter'::text,b.txn_time) as d4l1_qq,
|
|
date_part('month'::text,b.txn_time) as d4l1_mm,
|
|
b.retailer_id as d5l1_id,
|
|
d.name as d5l1_name,
|
|
count(distinct b.txn_id) as m1001,
|
|
sum(a.quantity) as m1002,
|
|
sum(a.price) as m1003,
|
|
sum(c.cost_price) as m1004
|
|
FROM customer_salesorder a
|
|
JOIN customer_sales b ON a.salesorder_id = b.salesorder_id
|
|
JOIN products c ON a.product_id = c.id
|
|
JOIN retailers d ON b.retailer_id = d.id
|
|
GROUP by client_id, d1l1_name, d1l2_name, d1l3_name, d1l4_id, d2l1_name, d5l1_id, d5l1_name, d4l1_yyyy, d4l1_qq, d4l1_mm;
|
|
|
|
update public.fw_ods_monthly a
|
|
set d3l1_name = b.salesman
|
|
from public.tmp_salesman b
|
|
where trim(a.d2l1_name) = trim(b.d2)
|
|
and trim(a.d5l1_name) = trim(b.d5)
|
|
and a.d4l1_qq = b.d4l2;
|
|
|
|
update public.fw_ods_monthly a
|
|
set d1l4_name = c.prod_name
|
|
from public.product_id_map b, product_summary c
|
|
where d1l4_id = b.id
|
|
and b.prod_id = c.prod_id;
|
|
|
|
update public.fw_ods_monthly
|
|
set d5l2_name = 'Wholesale Retailer'
|
|
where d5l1_name in ('METRO');
|
|
|
|
update public.fw_ods_monthly
|
|
set d5l2_name = 'Small Scale Retailer'
|
|
where d5l1_name in ('Aeon');
|
|
|
|
update public.fw_ods_monthly
|
|
set d5l2_name = 'Enterprises'
|
|
where d5l1_name in ('Tesco');
|
|
|
|
update public.fw_ods_monthly
|
|
set d5l2_name = 'Refurbished Dealer'
|
|
where d5l1_name in ('Auchan');
|
|
|
|
|
|
update public.fw_ods_monthly
|
|
set d5l2_name = 'Refurbished Retailer'
|
|
where d5l1_name in ('Kroger');
|
|
|
|
update public.fw_ods_monthly
|
|
set d5l2_name = 'Digital Outlet'
|
|
where d5l1_name in ('Walmart');
|
|
|
|
update public.fw_ods_monthly
|
|
set d5l2_name = 'Wholesale Dealer'
|
|
where d5l1_name in ('Walgreen');
|
|
|
|
update public.fw_ods_monthly
|
|
set d5l2_name = 'Retail Outlet'
|
|
where d5l1_name in ('Aldi');
|