428 lines
20 KiB
Bash
428 lines
20 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
echo "
|
||
|
|
||
|
--------------------------OOS -------------------------
|
||
|
drop table if exists public.om_oos_soldout_1;
|
||
|
|
||
|
|
||
|
create table public.om_oos_soldout_1
|
||
|
as
|
||
|
select snp_date_time,sku_code,inventory
|
||
|
from (
|
||
|
select snp_date,snp_time,snp_date_time,sku_code,inventory,
|
||
|
row_number() over (partition by sku_code,cast(snp_date_time as date) order by snp_date_time desc,inventory desc) as R
|
||
|
from (
|
||
|
select distinct snp_date,snp_time,dateadd(hour,7,cast(cast(snp_date as varchar) || ' ' || cast(snp_time as varchar) as datetime)) as snp_date_time,sku_code,inventory
|
||
|
from public.inventory_snapshot
|
||
|
)
|
||
|
) where R=1;
|
||
|
|
||
|
--age
|
||
|
drop table if exists public.om_oos_soldout_2;
|
||
|
|
||
|
|
||
|
create table public.om_oos_soldout_2
|
||
|
as
|
||
|
select *, datediff(day,cast(snp_date_time as date),current_date) as age
|
||
|
from public.om_oos_soldout_1;
|
||
|
|
||
|
drop table if exists public.om_oos_soldout_2_med;
|
||
|
|
||
|
|
||
|
create table public.om_oos_soldout_2_med
|
||
|
as
|
||
|
select *, case when age between 1 and 3 then '<=3' when age between 4 and 7 then '4-7' when age between 8 and 15 then '8-15'
|
||
|
when age > 15 then 'GT 15' end as age_group
|
||
|
from public.om_oos_soldout_2
|
||
|
where age>0;
|
||
|
|
||
|
drop table if exists public.om_oos_soldout_3;
|
||
|
|
||
|
|
||
|
create table public.om_oos_soldout_3
|
||
|
as
|
||
|
select a.*,b.inventory as Maximum_occurred_inventory
|
||
|
from public.om_oos_soldout_2_med a
|
||
|
inner join (
|
||
|
select inventory,age_group,sku_code
|
||
|
from (
|
||
|
select inventory,age_group,sku_code,row_number() over (partition by age_group,sku_code order by Max_inventory desc) as R
|
||
|
from (
|
||
|
select inventory,age_group,sku_code,count(*) as Max_inventory
|
||
|
from public.om_oos_soldout_2_med
|
||
|
group by inventory,age_group,sku_code order by 4 desc,1
|
||
|
)
|
||
|
) where R=1 order by 2,3
|
||
|
) b on a.sku_code=b.sku_code and a.age_group=b.age_group ;
|
||
|
|
||
|
drop table if exists public.om_oos_soldout_3_med;
|
||
|
|
||
|
|
||
|
create table public.om_oos_soldout_3_med
|
||
|
as
|
||
|
select a.*,b.\"<=3 Maximum_occurred_inventory\",\"4-7 Maximum_occurred_inventory\",\"8-15 Maximum_occurred_inventory\",\"GT 15 Maximum_occurred_inventory\"
|
||
|
from public.om_oos_soldout_3 a
|
||
|
inner join (
|
||
|
select distinct sku_code,
|
||
|
sum(case when Age_group in ('<=3') then Maximum_occurred_inventory end)as \"<=3 Maximum_occurred_inventory\",
|
||
|
sum(case when Age_group in ('4-7') then Maximum_occurred_inventory end) as \"4-7 Maximum_occurred_inventory\",
|
||
|
sum(case when Age_group in ('8-15') then Maximum_occurred_inventory end) as \"8-15 Maximum_occurred_inventory\",
|
||
|
sum(case when Age_group in ('GT 15') then Maximum_occurred_inventory end )as \"GT 15 Maximum_occurred_inventory\"
|
||
|
from public.om_oos_soldout_3
|
||
|
group by 1 order by sku_code
|
||
|
) b on a.sku_code=b.sku_code ;
|
||
|
|
||
|
|
||
|
drop table if exists public.om_oos_soldout_3_med_2;
|
||
|
|
||
|
|
||
|
create table public.om_oos_soldout_3_med_2
|
||
|
as
|
||
|
select a.*,b.sold_out_fl
|
||
|
from public.om_oos_soldout_3 a
|
||
|
inner join (
|
||
|
select sku_code,sold_out_fl
|
||
|
from (
|
||
|
select *,row_number() over (partition by sku_code order by sold_out_fl) as R
|
||
|
from (
|
||
|
select distinct sku_code,
|
||
|
case when ((age=16 or age=17 or age=18 or age=19) and inventory=0) and (\"8-15 Maximum_occurred_inventory\"=0) and \"4-7 Maximum_occurred_inventory\"=0 and \"<=3 Maximum_occurred_inventory\"=0 then '1.GT 15 and sold out'
|
||
|
when (age=8 and inventory=0) and \"4-7 Maximum_occurred_inventory\"=0 and \"<=3 Maximum_occurred_inventory\"=0 then '2.8-15 and sold out'
|
||
|
when ((age=4 or age=5 or age=6) and inventory=0) and \"<=3 Maximum_occurred_inventory\"=0 then '3.4-7 and sold out'
|
||
|
when (age=1 and inventory=0) then '4.<=3 and sold out' else '5.stocked' end as sold_out_fl--,count(distinct sku_code)
|
||
|
from public.om_oos_soldout_3_med
|
||
|
order by sku_code,age
|
||
|
)
|
||
|
) where R=1
|
||
|
) b on a.sku_code=b.sku_code ;
|
||
|
|
||
|
drop table if exists public.om_oos_soldout_4;
|
||
|
|
||
|
|
||
|
create table public.om_oos_soldout_4
|
||
|
as
|
||
|
select a.*,b.brand_name,b.\"EL/PL Flag\",b.give_away,b.active_status
|
||
|
from public.om_oos_soldout_3_med_2 a
|
||
|
inner join
|
||
|
(
|
||
|
select distinct b.name as brand_name,a.sku,case when moqremark = 'NOT ORDER GIVE AWAY ITEM' then 'Yes' else 'No' end give_away,
|
||
|
CASE
|
||
|
WHEN a.is_archived = 'true' THEN 'Permanatly_delisted'
|
||
|
WHEN a.is_delisted = 'true' THEN 'delisted'
|
||
|
WHEN a.is_archived = 'false'
|
||
|
AND a.is_delisted = 'false' THEN 'Active'
|
||
|
END active_status,
|
||
|
case when brand_name in ('HISTOIRE NATURELLE','INGRID','W DRESSROOM','FORENCOS','DEWYCEL','GLUTANEX','BELLFLOWER','ONE THING','BEAUSTA') then 'EL/PL' else 'NA' end as \"EL/PL Flag\"
|
||
|
from raena_catalog_management.product a
|
||
|
left join raena_catalog_management.brand b on a.brand_id=b.id
|
||
|
left join public.demand_forecasting_configs c on a.sku=c.sku
|
||
|
) b on a.sku_code=b.sku ;
|
||
|
|
||
|
drop table if exists public.om_oos_soldout_5;
|
||
|
|
||
|
|
||
|
create table public.om_oos_soldout_5
|
||
|
as
|
||
|
select a.*,coalesce(b.sku_type,'Not Moving') as sku_type,coalesce(b.new_sku_flag,'No') as new_sku_flag,
|
||
|
cikarang_runrate,surabaya_runrate,semarang_runrate,medan_runrate,makassar_runrate,samarinda_runrate,total_runrate,c.gold_price,d.runrate as \"90_days_runrate\"
|
||
|
from public.om_oos_soldout_4 a
|
||
|
left join public.demand_forecast_dashboard_final b on a.sku_code=b.sku
|
||
|
LEFT JOIN
|
||
|
(SELECT distinct sku ,
|
||
|
case when is_slash_price='true'
|
||
|
then json_extract_path_text(slashed_tier_price,'bf645e97-8a48-4977-8367-e987489760f9',TRUE)
|
||
|
else json_extract_path_text(tier_price,'bf645e97-8a48-4977-8367-e987489760f9',TRUE) end as gold_price
|
||
|
FROM raena_catalog_management.product p) c on a.sku_code=c.sku
|
||
|
left join
|
||
|
( select sku,sum(oi.quantity)/count(distinct cast(o.created_at as date)) as runrate
|
||
|
from raena_order_management.order o
|
||
|
inner join raena_order_management.order_item oi on o.id=oi.order_id
|
||
|
where cast(o.created_at as date)>=cast((current_date-90) as date) and o.payment_status='Paid' and cast(o.is_archived as varchar)='false'
|
||
|
group by sku
|
||
|
) d on a.sku_code=d.sku
|
||
|
;
|
||
|
|
||
|
/*drop table if exists public.om_oos_soldout_5;
|
||
|
|
||
|
|
||
|
create table public.om_oos_soldout_5
|
||
|
as
|
||
|
select a.*,coalesce(b.sku_type,'Not Moving') as sku_type,coalesce(b.new_sku_flag,'No') as new_sku_flag,
|
||
|
cikarang_runrate,surabaya_runrate,semarang_runrate,medan_runrate,makassar_runrate,samarinda_runrate,total_runrate,c.gold_price,d.runrate as \"90_days_runrate\"
|
||
|
from public.om_oos_soldout_4 a
|
||
|
left join public.demand_forecast_dashboard_final b on a.sku_code=b.sku
|
||
|
LEFT JOIN
|
||
|
(SELECT distinct sku ,
|
||
|
case when is_slash_price='true'
|
||
|
then json_extract_path_text(slashed_tier_price,'bf645e97-8a48-4977-8367-e987489760f9',TRUE)
|
||
|
else json_extract_path_text(tier_price,'bf645e97-8a48-4977-8367-e987489760f9',TRUE) end as gold_price
|
||
|
FROM raena_catalog_management.product p) c on a.sku_code=c.sku
|
||
|
left join
|
||
|
( select distinct sku,total_runrate as runrate from public.demand_forecast_dashboard_final
|
||
|
) d on a.sku_code=d.sku; */
|
||
|
|
||
|
|
||
|
|
||
|
drop table if exists public.om_oos_soldout_6;
|
||
|
|
||
|
|
||
|
create table public.om_oos_soldout_6
|
||
|
as
|
||
|
select distinct cast(a.snp_date_time as date) as snp_date_time,a.sku_code,\"90_days_runrate\",a.gold_price,OOS_days,a.sold_out_fl,
|
||
|
a.active_status,a.brand_name,\"EL/PL Flag\",a.give_away,a.sku_type,a.new_sku_flag,c.total_runrate,d.avg_remaining_LM_RV,d.avg_All_LM_RV,e.PO_Ordered_quantity
|
||
|
from public.om_oos_soldout_5 a
|
||
|
inner join (
|
||
|
select sku_code,sold_out_fl,max(case when inventory=0 and sold_out_fl='1.GT 15 and sold out' and age>15 then age
|
||
|
when inventory=0 and sold_out_fl='2.8-15 and sold out' and age between 8 and 15 then age
|
||
|
when inventory=0 and sold_out_fl='3.4-7 and sold out' and age between 4 and 7 then age
|
||
|
when inventory=0 and sold_out_fl='4.<=3 and sold out' and age <=3 then age
|
||
|
end) as OOS_days
|
||
|
from public.om_oos_soldout_5 where sold_out_fl not like '%stocked'
|
||
|
group by 1,2
|
||
|
) b on a.sku_code=b.sku_code
|
||
|
left join public.demand_forecast_dashboard_final c on a.sku_code=c.sku
|
||
|
left join (
|
||
|
select sku,avg(remaining_shipping_fee)/avg(remaining_payment_amount) as avg_remaining_LM_RV,avg(shipping_fee)/avg(payment_amount) as avg_All_LM_RV
|
||
|
from (
|
||
|
select distinct sku,case when (actual_warehouse!=expected_warehouse) or expected_warehouse isnull and payment_amount notnull then payment_amount end as remaining_payment_amount,
|
||
|
case when (actual_warehouse!=expected_warehouse) or expected_warehouse isnull and payment_amount notnull then \"Actual Shipping Fee\" end as remaining_shipping_fee,
|
||
|
payment_amount,\"Actual Shipping Fee\" as shipping_fee
|
||
|
from (
|
||
|
select distinct sku,actual_warehouse,expected_warehouse,A.payment_amount,
|
||
|
case when A.sub_order_shipping_id=sb.reference_id and A.order_id=sb.order_id then ((sb.shipping_amount)/(sb.order_weight))*(sb.final_weight)
|
||
|
when A.order_id = D.id and (A.sub_order_shipping_id= D.id or A.sub_order_shipping_id is null) then D.shipping_amount
|
||
|
when A.sub_order_shipping_id=C.id then C.shipping_amount end \"Actual Shipping Fee\"
|
||
|
from public.rate_sheet_wise_expected_warehouse A
|
||
|
left join raena_order_management.sales_sub_order_shipment C on A.sub_order_shipping_id=C.id
|
||
|
left join raena_order_management.order D on A.order_id = D.id and (A.sub_order_shipping_id= D.id or A.sub_order_shipping_id is null)
|
||
|
left join public.OM_Logistic_final_shipping_base sb on A.sub_order_shipping_id=sb.reference_id and A.order_id=sb.order_id
|
||
|
where A.created_date>=(current_date-90) and A.is_campaign='false'
|
||
|
)
|
||
|
) where payment_amount!=0
|
||
|
group by 1
|
||
|
) d on a.sku_code=d.sku
|
||
|
left join (
|
||
|
select raena_code sku,
|
||
|
coalesce(sum(case when warehouse_id = 'CGK WHS' then COALESCE(quantity,0) end),0) +
|
||
|
coalesce(sum(case when warehouse_id = 'Makassar WHS' then COALESCE(quantity,0) end),0) +
|
||
|
coalesce(sum(case when warehouse_id = 'Medan WHS' then COALESCE(quantity,0) end),0) +
|
||
|
coalesce(sum(case when warehouse_id = 'Samarinda WHS' then COALESCE(quantity,0) end),0) +
|
||
|
coalesce(sum(case when warehouse_id = 'Semarang WHS' then COALESCE(quantity,0) end),0) +
|
||
|
coalesce(sum(case when warehouse_id = 'Surabaya WHS' then COALESCE(quantity,0) end),0) PO_Ordered_quantity
|
||
|
from raena_erp_management.inbound_order A
|
||
|
left join raena_erp_management.inbound_order_sku B on A.id = B.orderIdId
|
||
|
where cast(expected_arrival_date as date) > current_date -1 and received_time is null
|
||
|
group by raena_code
|
||
|
) e on a.sku_code=e.sku;
|
||
|
|
||
|
-------------------restock
|
||
|
|
||
|
drop table if exists public.om_oos_restock_1;
|
||
|
|
||
|
|
||
|
create table public.om_oos_restock_1
|
||
|
as
|
||
|
select report_date,a.sku,overall_qty_required_per_day as restock,sku_type,brand_name,give_away,new_sku_flag,active_status,
|
||
|
coalesce(cikarang_project_quantity_to_order,0) as cikarang_project_quantity_to_order,coalesce(surabaya_project_quantity_to_order,0) as surabaya_project_quantity_to_order,
|
||
|
coalesce(semarang_project_quantity_to_order,0) as semarang_project_quantity_to_order,coalesce(medan_project_quantity_to_order,0) as medan_project_quantity_to_order,
|
||
|
coalesce(makassar_project_quantity_to_order,0) as makassar_project_quantity_to_order,coalesce(semarandi_project_quantity_to_order,0) as semarandi_project_quantity_to_order
|
||
|
,case when brand_name in ('HISTOIRE NATURELLE','INGRID','W DRESSROOM','FORENCOS','DEWYCEL','GLUTANEX','BELLFLOWER','ONE THING','BEAUSTA') then 'EL/PL' else 'NA' end as \"EL/PL Flag\",
|
||
|
datediff(day,cast(report_date as date),current_date) as age,c.gold_price
|
||
|
from public.OM_OOS_Base a
|
||
|
LEFT JOIN
|
||
|
(SELECT distinct sku ,
|
||
|
case when is_slash_price='true'
|
||
|
then json_extract_path_text(slashed_tier_price,'bf645e97-8a48-4977-8367-e987489760f9',TRUE)
|
||
|
else json_extract_path_text(tier_price,'bf645e97-8a48-4977-8367-e987489760f9',TRUE) end as gold_price
|
||
|
FROM raena_catalog_management.product p) c on a.sku=c.sku;
|
||
|
|
||
|
drop table if exists public.om_oos_restock_1_med;
|
||
|
|
||
|
|
||
|
create table public.om_oos_restock_1_med
|
||
|
as
|
||
|
select *
|
||
|
from public.om_oos_restock_1 unpivot
|
||
|
(cnt for warehouse in (cikarang_project_quantity_to_order,surabaya_project_quantity_to_order,semarang_project_quantity_to_order,medan_project_quantity_to_order,
|
||
|
makassar_project_quantity_to_order,semarandi_project_quantity_to_order));
|
||
|
|
||
|
|
||
|
drop table if exists public.om_oos_restock_2;
|
||
|
|
||
|
|
||
|
create table public.om_oos_restock_2
|
||
|
as
|
||
|
select *,case when age between 1 and 3 then '<=3' when age between 4 and 7 then '4-7' when age between 8 and 15 then '8-15'
|
||
|
when age > 15 then 'GT 15' end as age_group
|
||
|
from public.om_oos_restock_1_med
|
||
|
where age>0;
|
||
|
|
||
|
drop table if exists public.om_oos_restock_3;
|
||
|
|
||
|
|
||
|
create table public.om_oos_restock_3
|
||
|
as
|
||
|
select a.*,b.restock as Maximum_occurred_inventory
|
||
|
from public.om_oos_restock_2 a
|
||
|
inner join (
|
||
|
select restock,age_group,sku,warehouse
|
||
|
from (
|
||
|
select restock,age_group,warehouse,sku,row_number() over (partition by age_group,warehouse,sku order by Max_inventory desc) as R
|
||
|
from (
|
||
|
select cnt as restock,age_group,warehouse,sku,count(*) as Max_inventory
|
||
|
from public.om_oos_restock_2
|
||
|
group by cnt,age_group,warehouse,sku order by 5 desc,1
|
||
|
)
|
||
|
) where R=1 order by 2,3
|
||
|
) b on a.sku=b.sku and a.age_group=b.age_group and a.warehouse=b.warehouse;
|
||
|
|
||
|
|
||
|
|
||
|
drop table if exists public.om_oos_restock_4;
|
||
|
|
||
|
|
||
|
create table public.om_oos_restock_4
|
||
|
as
|
||
|
select a.*,b.\"<=3 Maximum_occurred_inventory\",\"4-7 Maximum_occurred_inventory\",\"8-15 Maximum_occurred_inventory\",\"GT 15 Maximum_occurred_inventory\"
|
||
|
from public.om_oos_restock_3 a
|
||
|
inner join (
|
||
|
select distinct sku,warehouse,
|
||
|
sum(case when Age_group in ('<=3') then Maximum_occurred_inventory end)as \"<=3 Maximum_occurred_inventory\",
|
||
|
sum(case when Age_group in ('4-7') then Maximum_occurred_inventory end) as \"4-7 Maximum_occurred_inventory\",
|
||
|
sum(case when Age_group in ('8-15') then Maximum_occurred_inventory end) as \"8-15 Maximum_occurred_inventory\",
|
||
|
sum(case when Age_group in ('GT 15') then Maximum_occurred_inventory end )as \"GT 15 Maximum_occurred_inventory\"
|
||
|
from public.om_oos_restock_3
|
||
|
group by 1,2 order by sku
|
||
|
) b on a.sku=b.sku and a.warehouse=b.warehouse;
|
||
|
|
||
|
drop table if exists public.om_oos_restock_5;
|
||
|
|
||
|
|
||
|
create table public.om_oos_restock_5
|
||
|
as
|
||
|
select a.*,b.sold_out_fl,c.runrate as \"90_days_runrate\"
|
||
|
from public.om_oos_restock_4 a
|
||
|
inner join (
|
||
|
select sku,sold_out_fl,warehouse
|
||
|
from (
|
||
|
select *,row_number() over (partition by sku order by sold_out_fl) as R
|
||
|
from (
|
||
|
select distinct sku,warehouse,
|
||
|
case when ((age=16) and restock=0) and (\"8-15 Maximum_occurred_inventory\"=0) and \"4-7 Maximum_occurred_inventory\"=0 and \"<=3 Maximum_occurred_inventory\"=0 then '1.GT 15 and sold out'
|
||
|
when (age=8 and restock=0) and \"4-7 Maximum_occurred_inventory\"=0 and \"<=3 Maximum_occurred_inventory\"=0 then '2.8-15 and sold out'
|
||
|
when ((age=4) and restock=0) and \"<=3 Maximum_occurred_inventory\"=0 then '3.4-7 and sold out'
|
||
|
when (age=1 and restock=0) then '4.<=3 and sold out' else '5.stocked' end as sold_out_fl--,count(distinct sku_code)
|
||
|
from public.om_oos_restock_4
|
||
|
order by sku,age
|
||
|
)
|
||
|
) where R=1
|
||
|
) b on a.sku=b.sku and a.warehouse=b.warehouse
|
||
|
left join (
|
||
|
select sku,sum(oi.quantity)/count(distinct cast(o.created_at as date)) as runrate
|
||
|
from raena_order_management.order o
|
||
|
inner join raena_order_management.order_item oi on o.id=oi.order_id
|
||
|
where cast(o.created_at as date)>=cast((current_date-90) as date) and o.payment_status='Paid' and cast(o.is_archived as varchar)='false'
|
||
|
group by sku
|
||
|
) c on a.sku=c.sku;
|
||
|
|
||
|
drop table if exists public.weight_sku_table;
|
||
|
|
||
|
|
||
|
CREATE TABLE public.weight_sku_table AS
|
||
|
SELECT sku,
|
||
|
CASE
|
||
|
WHEN weight>=volume_weight THEN weight
|
||
|
ELSE volume_weight
|
||
|
END weight
|
||
|
FROM
|
||
|
(SELECT a.sku,
|
||
|
weight,
|
||
|
(height*width*LENGTH)/6000 AS volume_weight
|
||
|
FROM raena_catalog_management.product a
|
||
|
WHERE CLASS<>'Bundle') A;
|
||
|
|
||
|
drop table if exists public.om_shipping_fee_sku_base_stage2;
|
||
|
|
||
|
|
||
|
CREATE TABLE public.om_shipping_fee_sku_base_stage2 AS
|
||
|
SELECT A.*,
|
||
|
B.weight*Quantity sku_weight,
|
||
|
CASE
|
||
|
WHEN (B.weight*Quantity)<1.3 THEN 1
|
||
|
WHEN (B.weight*Quantity)>=1.3
|
||
|
AND (ABS((B.weight*Quantity)) - FLOOR(ABS((B.weight*Quantity)))) BETWEEN 0.3 AND 0.999999 THEN FLOOR((B.weight*Quantity))+1
|
||
|
ELSE FLOOR((B.weight*Quantity))
|
||
|
END AS final_weight
|
||
|
FROM (
|
||
|
select sku,actual_warehouse,expected_warehouse,payment_amount,quantity,sub_order_shipping_id,missed_inventory,
|
||
|
coalesce(expected_JTR_shipping_fee,Expected_shipping_fee,\"Actual Shipping Fee\") as Expected_shipping_fee,\"Actual Shipping Fee\"
|
||
|
from (
|
||
|
select distinct A.sku,actual_warehouse,expected_warehouse,A.payment_amount,quantity,A.sub_order_shipping_id,missed_inventory,
|
||
|
case when A.sub_order_shipping_id=sb.reference_id and A.order_id=sb.order_id then ((sb.shipping_amount)/(sb.order_weight))*(sb.final_weight)
|
||
|
when A.order_id = D.id and (A.sub_order_shipping_id= D.id or A.sub_order_shipping_id is null) then D.shipping_amount
|
||
|
when A.sub_order_shipping_id=C.id then C.shipping_amount end \"Actual Shipping Fee\",
|
||
|
public.rate_sheet_wise_expected_warehouse_expected_shipping_final.Expected_shipping_fee,jsf.expected_JTR_shipping_fee
|
||
|
from public.rate_sheet_wise_expected_warehouse A
|
||
|
left join raena_order_management.sales_sub_order_shipment C on A.sub_order_shipping_id=C.id
|
||
|
left join raena_order_management.order D on A.order_id = D.id and (A.sub_order_shipping_id= D.id or A.sub_order_shipping_id is null)
|
||
|
left join public.OM_Logistic_final_shipping_base sb on A.sub_order_shipping_id=sb.reference_id and A.order_id=sb.order_id
|
||
|
left join public.rate_sheet_wise_expected_warehouse_expected_shipping_final on A.sub_order_shipping_id=public.rate_sheet_wise_expected_warehouse_expected_shipping_final.sub_order_shipping_id
|
||
|
left join public.om_shipment_jtr_shipping_fee_base_11 jsf on A.sub_order_shipping_id=jsf.sub_order_shipping_id
|
||
|
where A.created_date>=(current_date-90) and A.is_campaign='false'
|
||
|
)
|
||
|
) A
|
||
|
LEFT JOIN public.weight_sku_table B ON A.sku = B.sku ;
|
||
|
|
||
|
drop table if exists public.om_shipping_fee_sku_base_stage3;
|
||
|
|
||
|
|
||
|
CREATE TABLE public.om_shipping_fee_sku_base_stage3 AS
|
||
|
SELECT *,
|
||
|
(sku_weight*\"Actual Shipping Fee\")/sum(sku_weight) over(partition BY sub_order_shipping_id) new_shipment_amount,
|
||
|
(sku_weight*Expected_shipping_fee)/sum(sku_weight) over(partition BY sub_order_shipping_id) new_expected_shipment_amount
|
||
|
FROM public.om_shipping_fee_sku_base_stage2;
|
||
|
|
||
|
drop table if exists public.om_oos_restock_6;
|
||
|
|
||
|
|
||
|
create table public.om_oos_restock_6
|
||
|
as
|
||
|
select distinct a.report_date,a.sku,a.sku_type,a.brand_name,a.give_away,a.new_sku_flag,a.active_status,a.\"el/pl flag\",a.age,a.gold_price,a.cnt,a.age_group,a.sold_out_fl,\"90_days_runrate\",
|
||
|
b.restock_days,c.total_runrate,d.avg_remaining_LM_RV,d.avg_All_LM_RV
|
||
|
from public.om_oos_restock_5 a
|
||
|
inner join (
|
||
|
select sku,sold_out_fl,max(case when restock=0 and sold_out_fl='1.GT 15 and sold out' and age>15 then age
|
||
|
when restock=0 and sold_out_fl='2.8-15 and sold out' and age between 8 and 15 then age
|
||
|
when restock=0 and sold_out_fl='3.4-7 and sold out' and age between 4 and 7 then age
|
||
|
when restock=0 and sold_out_fl='4.<=3 and sold out' and age <=3 then age
|
||
|
end) as restock_days
|
||
|
from public.om_oos_restock_5 where sold_out_fl not like '%stocked'
|
||
|
group by 1,2
|
||
|
) b on a.sku=b.sku
|
||
|
left join public.demand_forecast_dashboard_final c on a.sku=c.sku
|
||
|
left join (
|
||
|
select sku,avg(shipping_fee)/avg(payment_amount) as avg_remaining_LM_RV,avg(new_expected_shipment_amount)/avg(payment_amount) as avg_All_LM_RV
|
||
|
from (
|
||
|
select sku,
|
||
|
new_expected_shipment_amount,
|
||
|
payment_amount,\"Actual Shipping Fee\" as shipping_fee
|
||
|
from (
|
||
|
select sku,actual_warehouse,expected_warehouse,
|
||
|
(payment_amount/quantity) as payment_amount,missed_inventory,(new_shipment_amount/quantity) as \"Actual Shipping Fee\",
|
||
|
(new_expected_shipment_amount/quantity) as new_expected_shipment_amount
|
||
|
from public.om_shipping_fee_sku_base_stage3 --where sku='HAN020'
|
||
|
)
|
||
|
) where payment_amount!=0
|
||
|
group by 1
|
||
|
|
||
|
) d on a.sku=d.sku;
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
" > /home/ec2-user/cronjob/OOS/OOS_code.sql
|
||
|
|
||
|
psql "host=raen-prd-sg-redshift-cluster.cdqj58hfx4p7.ap-southeast-1.redshift.amazonaws.com user=dbadmin dbname=analytics port=5439 password=5qCif6eyY3Kmg4z" -f /home/ec2-user/cronjob/OOS/OOS_code.sql
|