raena_analytics_scripts/redshift/distributed_warehouse_dashb...

1581 lines
58 KiB
Bash
Raw Normal View History

2024-06-24 12:26:08 +00:00
!/bin/bash
echo -e " \n----------- ACCEPTING NUMBER OF DAYS BEFORE THE RUN DATE FOR WHICH THE REPORT IS TO BE RUN --------------\n"
backDay=$1
echo $backDay
echo -e " \n------------- DATE IN THE REQUIRED FORMAT --------------\n"
reportDate=$(date -d"$backDay day ago" "+%Y-%m-%d")
echo 'reportDate'=$reportDate
echo "
drop table if exists raena_analytics.sku_type_warehouse;
create table raena_analytics.sku_type_warehouse
as
select distinct sku , sku_type from raena_analytics.final_basic_calucation_table;
DROP TABLE IF EXISTS raena_analytics.warehouse_analysis_stage1 ;
CREATE TABLE raena_analytics.warehouse_analysis_stage1 AS WITH basetable AS
(SELECT A.id ,
CASE
WHEN origin_area_id= '12416' THEN 'Cikarang'
WHEN origin_area_id= '21599' THEN 'Semarang'
WHEN origin_area_id= '30110' THEN 'Surabaya'
WHEN origin_area_id= '64985' THEN 'Makassar'
WHEN origin_area_id= '81092' THEN 'Medan'
WHEN origin_area_id= '36700' THEN 'Samarinda'
END origin_warehouse ,
destination_area_id ,
min(price) price ,
B.name partner_name,
C.name Service_name
FROM raena_transport_management.logistic_rate A
LEFT JOIN raena_transport_management.logistic_partner B ON A.partner_id = B.id
LEFT JOIN raena_transport_management.logistic_service C ON A.service_id = C.id
WHERE A.active_status ='true'
GROUP BY A.id ,
CASE
WHEN origin_area_id= '12416' THEN 'Cikarang'
WHEN origin_area_id= '21599' THEN 'Semarang'
WHEN origin_area_id= '30110' THEN 'Surabaya'
WHEN origin_area_id= '64985' THEN 'Makassar'
WHEN origin_area_id= '81092' THEN 'Medan'
WHEN origin_area_id= '36700' THEN 'Samarinda'
END ,
destination_area_id ,
B.name ,
C.name)
SELECT AA.*,
BB.origin_warehouse expected_warehouse
FROM
(SELECT A.*,
B.min_price
FROM basetable A
LEFT JOIN
(SELECT destination_area_id ,
min(price) min_price
--partner_name,
--Service_name
FROM basetable
where service_name = 'REG'
GROUP BY destination_area_id
--partner_name,
--Service_name
) B ON A.destination_area_id=B.destination_area_id
--AND A.partner_name =B.partner_name
--AND A.Service_name= B.Service_name
) AA
LEFT JOIN
(SELECT DISTINCT min_price,
--service_name,
destination_area_id ,
origin_warehouse,
row_number () over (partition BY min_price
--,service_name
,destination_area_id
ORDER BY min_price ,
--service_name ,
destination_area_id) rnk
FROM
(SELECT DISTINCT A.destination_area_id,
A.origin_warehouse ,
-- A.service_name,
min_price --A.*,B.min_price
FROM basetable A
INNER JOIN
(SELECT destination_area_id ,
min(price) min_price
--partner_name,
--Service_name
FROM basetable
where service_name = 'REG'
GROUP BY destination_area_id
--partner_name,
--Service_name
) B ON A.destination_area_id=B.destination_area_id
--AND A.partner_name =B.partner_name
--AND A.Service_name= B.Service_name
AND min_price = Price)AA) BB ON --AA.service_name = BB.service_name AND
AA.min_price = BB.min_price
AND AA.destination_area_id= BB.destination_area_id
AND rnk = 1 ;
select 1;
DROP TABLE IF EXISTS raena_analytics.warehouse_analysis_stage3;
CREATE TABLE raena_analytics.warehouse_analysis_stage3 AS
SELECT DISTINCT coalesce(B.order_id) order_id ,
A.reference_id,
E.name service_name ,
E.type service_type ,
EE.name partner_name ,
CASE
WHEN warehouse_code like 'WH-CGK%' THEN 'Cikarang'
WHEN warehouse_code like 'WH-SRG%' THEN 'Semarang'
WHEN warehouse_code like 'WH-SUB%' THEN 'Surabaya'
WHEN warehouse_code like 'WH-UPG%' THEN 'Makassar'
WHEN warehouse_code like 'WH-MES%' THEN 'Medan'
WHEN warehouse_code like 'WH-AAP%' THEN 'Samarinda'
WHEN warehouse_code like 'WH-BPN%' THEN 'Balikpapan'
WHEN warehouse_code like 'VEN%' THEN 'Supplier_warehouse'
END actual_warehouse,
B.rate_id,
sku,
C.quantity quantity,
B.shipping_amount shipping_amount,
C.payment_amount payment_amount
FROM raena_transport_management.logistic_order A
LEFT JOIN raena_order_management.sales_sub_order_shipment B ON A.reference_id = B.id
LEFT JOIN raena_transport_management.logistic_service E ON A.service_id = E.id
LEFT JOIN raena_transport_management.logistic_partner EE ON A.partner_id = EE.id
LEFT JOIN
(SELECT AA.order_id ,
AA.sales_sub_order_shipment_id,
AA.sku,
CC.Quantity ,
CC.discounted_price payment_amount
FROM
(SELECT order_id ,
sales_sub_order_shipment_id,
coalesce(BB.sku ,parent_sku) sku,
-- sum(coalesce(BB.quantity , AA.quantity)) Quantity
coalesce(BB.quantity , AA.quantity) Quantity
FROM raena_order_management.sales_sub_order AA
LEFT JOIN raena_order_management.sales_sub_order_parent_child BB ON AA.id = BB.sales_sub_order_id
--GROUP BY 1,2,3
) AA
LEFT JOIN
(SELECT DISTINCT external_id ,
product_sku ,
quantity quantity,
discounted_price*quantity discounted_price
FROM raena_analytics.base_netsuite_final
) CC ON AA.order_id = CC.external_id
AND AA.sku = CC.product_sku
AND AA.Quantity= CC.quantity ) C ON A.reference_id = C.sales_sub_order_shipment_id
WHERE cast(A.created_at AS date)>='2022-04-01'
AND A.status IN ('RETURNED',
'DELIVERED',
'PICKED_UP',
'CREATED');
DROP TABLE IF EXISTS raena_analytics.warehouse_analysis_stage3_final_v1;
CREATE TABLE raena_analytics.warehouse_analysis_stage3_final_v1 AS
SELECT A.reference_id AS Order_id ,
reference_id ,
service_name ,
service_type ,
partner_name ,
'Cikarang' actual_warehouse ,
-1 rate_id ,
product_sku sku ,
B.quantity ,
B.shipping_cost shipping_amount ,
B.discounted_price*B.quantity payment_amount
FROM raena_analytics.warehouse_analysis_stage3 A
LEFT JOIN raena_analytics.base_netsuite_final B ON A.reference_id = B.external_id
WHERE A.order_id IS NULL
UNION
SELECT *
FROM raena_analytics.warehouse_analysis_stage3
WHERE order_id IS NOT NULL;
DROP TABLE IF EXISTS raena_analytics.warehouse_analysis_stage3_final;
CREATE TABLE raena_analytics.warehouse_analysis_stage3_final AS
SELECT *
FROM raena_analytics.warehouse_analysis_stage3_final_v1
WHERE order_id NOT IN
(SELECT DISTINCT id
FROM raena_order_management.order
WHERE is_campaign='true')
AND payment_amount IS NOT NULL
UNION
SELECT A.Order_id,
reference_id,
service_name ,
service_type ,
partner_name ,
actual_warehouse,
rate_id,
A.sku ,
A.quantity,
shipping_amount,
B.payment_price
FROM raena_analytics.warehouse_analysis_stage3_final_v1 A
INNER JOIN
(SELECT order_id ,
sales_sub_order_shipment_id,
coalesce(BB.sku ,parent_sku) sku,
sum(coalesce(BB.quantity , AA.quantity)) Quantity,
sum(coalesce(BB.payment_amount , AA.payment_amount)) payment_price
FROM raena_order_management.sales_sub_order AA
LEFT JOIN raena_order_management.sales_sub_order_parent_child BB ON AA.id = BB.sales_sub_order_id
WHERE order_id IN
(SELECT DISTINCT id
FROM raena_order_management.order
WHERE is_campaign='true')
GROUP BY 1,
2,
3) B ON A.order_id = B.order_id
AND A.reference_id= B.sales_sub_order_shipment_id
AND A.sku = B.sku;
DROP TABLE IF EXISTS raena_analytics.warehouse_analysis_stage1_1;
CREATE TABLE raena_analytics.warehouse_analysis_stage1_1 AS
SELECT DISTINCT Z.id order_id ,
A.reference_id,
service_name ,
service_type ,
partner_name ,
actual_warehouse,
A.rate_id,
A.sku,
A.quantity,
A.shipping_amount,
A.payment_amount,
payment_status ,
Z.status order_status,
case when Z.provider='dsf' then 'DSF'
when Z.provider='rdash360' then 'RDash'
when Z.order_placed_by='merchant' then 'Merchant'
when Z.order_placed_by='admin' then 'Admin Panel'
when Z.order_placed_by='reseller' then 'App' end order_placed_by,
case
when Z.is_campaign='true' then 'Campaign Order'
when Z.is_consignment='true' then 'Consignment Order'
when Z.provider='dsf' then 'DSF Order'
when Z.order_placed_by='merchant' then 'Merchant Order'
when D.name is not null then 'Channel Order'
else 'Reseller Order' end order_type,
Z.created_at,
z.is_campaign,
Z.created_by
FROM raena_order_management.order Z
INNER JOIN raena_analytics.warehouse_analysis_stage3_final A ON Z.id=A.order_id
left join raena_order_management.channel D on Z.channel_id = D.id
WHERE ((Z.payment_status = 'Paid' or Z.id like 'PL%') or (Z.payment_status='Initiated' and Z.is_cash_on_delivery='true'))
AND cast(Z.created_at AS date)>='2022-04-01';
DROP TABLE IF EXISTS raena_analytics.warehouse_analysis_stage1_2_v1;
CREATE TABLE raena_analytics.warehouse_analysis_stage1_2_v1 AS
SELECT BB.*,
CASE
WHEN BB.external_id = B.order_id
AND BB.sku = B.sku
AND (CASE
WHEN BB.item_type LIKE '%Bundle%' THEN 'Bundle'
ELSE 'Product'
END)=B.product_class THEN B.new_shipment_amount
ELSE C.new_shipment_amount
END shipping_amount
FROM
(SELECT external_id ,
sku ,
quantity,
item_type,
Brand_name,
discounted_price
FROM raena_analytics.gm_dashboard
LEFT JOIN
(SELECT order_id
FROM raena_analytics.warehouse_analysis_stage3_final) AA ON external_id = order_id
WHERE cast(transaction_date AS date)>='2022-04-01'
AND order_id IS NULL)BB
LEFT JOIN
(SELECT order_id,
sku,
product_class,
new_shipment_amount
FROM raena_analytics.sku_level_shipping_fee_final
WHERE new_shipment_amount<>0) B ON BB.external_id = B.order_id
AND BB.sku = B.sku
AND (CASE
WHEN BB.item_type LIKE '%Bundle%' THEN 'Bundle'
ELSE 'Product'
END)=B.product_class
LEFT JOIN
(SELECT external_id,
sku,
product_class,
new_shipment_amount
FROM raena_analytics.sku_level_shipping_fee_old_final
WHERE new_shipment_amount<>0) C ON BB.external_id = C.external_id
AND BB.sku = C.sku
AND (CASE
WHEN BB.item_type LIKE '%Bundle%' THEN 'Bundle'
ELSE 'Product'
END)=C.product_class;
DROP TABLE IF EXISTS raena_analytics.warehouse_analysis_stage1_2;
CREATE TABLE raena_analytics.warehouse_analysis_stage1_2 AS
SELECT DISTINCT Z.id order_id ,
BB.sku sku,
BB.quantity quantity,
shipping_amount,
BB.Brand_name AS Brand_name ,
shipping_to shipping_to,
BB.discounted_price*BB.quantity payment_amount,
payment_status ,
Z.status order_status,
CASE
WHEN Z.provider='dsf' THEN 'DSF'
WHEN Z.provider='rdash360' THEN 'RDash'
WHEN Z.order_placed_by='merchant' THEN 'Merchant'
WHEN Z.order_placed_by='admin' THEN 'Admin Panel'
WHEN Z.order_placed_by='reseller' THEN 'App'
END order_placed_by,
CASE
WHEN Z.is_campaign='true' THEN 'Campaign Order'
WHEN Z.is_consignment='true' THEN 'Consignment Order'
WHEN Z.provider='dsf' THEN 'DSF Order'
WHEN Z.order_placed_by='merchant' THEN 'Merchant Order'
WHEN D.name IS NOT NULL THEN 'Channel Order'
ELSE 'Reseller Order'
END order_type,
Z.created_at,
z.is_campaign,
Z.created_by
FROM
(SELECT id ,
status,
provider,
order_placed_by,
is_consignment,
payment_status,
is_campaign,
created_at,
shipping_to,
channel_id,
created_by
FROM raena_order_management.order
WHERE ((payment_status = 'Paid' or id like 'PL%') or (payment_status='Initiated' and is_cash_on_delivery='true'))
AND cast(created_at AS date)>='2022-04-01') Z
INNER JOIN raena_analytics.warehouse_analysis_stage1_2_v1 BB ON Z.id = BB.external_id
LEFT JOIN raena_order_management.channel D ON Z.channel_id = D.id ;
DROP TABLE IF EXISTS raena_analytics.warehouse_analysis_stage1_3_v1;
CREATE TABLE raena_analytics.warehouse_analysis_stage1_3_v1 AS
SELECT Z.id AS order_id ,
A.reference_id,
A.service_name ,
A.service_type ,
A.partner_name ,
A.actual_warehouse,
A.rate_id,
coalesce(A.sku,B.sku) sku,
coalesce(A.quantity,B.quantity) quantity,
coalesce(A.shipping_amount,B.shipping_amount) shipping_amount,
Z.shipping_to shipping_to,
coalesce(A.payment_amount,B.payment_amount) payment_amount,
Z.payment_status ,
Z.status order_status,
CASE
WHEN Z.provider='dsf' THEN 'DSF'
WHEN Z.provider='rdash360' THEN 'RDash'
WHEN Z.order_placed_by='merchant' THEN 'Merchant'
WHEN Z.order_placed_by='admin' THEN 'Admin Panel'
WHEN Z.order_placed_by='reseller' THEN 'App'
END order_placed_by,
CASE
WHEN Z.is_campaign='true' THEN 'Campaign Order'
WHEN Z.is_consignment='true' THEN 'Consignment Order'
WHEN Z.provider='dsf' THEN 'DSF Order'
WHEN Z.order_placed_by='merchant' THEN 'Merchant Order'
WHEN D.name IS NOT NULL THEN 'Channel Order'
ELSE 'Reseller Order'
END order_type,
Z.created_at,
z.is_campaign,
Z.created_by
FROM raena_order_management.order Z
LEFT JOIN raena_analytics.warehouse_analysis_stage1_1 A ON Z.id = A.order_id
LEFT JOIN raena_analytics.warehouse_analysis_stage1_2 B ON Z.id = B.order_id
LEFT JOIN raena_order_management.channel D ON Z.channel_id = D.id
WHERE ((Z.payment_status = 'Paid' or Z.id like 'PL%') or (Z.payment_status='Initiated' and Z.is_cash_on_delivery='true'))
AND cast(Z.created_at AS date)>='2022-04-01';
DROP TABLE IF EXISTS raena_analytics.warehouse_analysis_stage1_3;
CREATE TABLE raena_analytics.warehouse_analysis_stage1_3 AS
SELECT order_id,
A.reference_id,
service_name ,
service_type ,
partner_name ,
actual_warehouse,
rate_id,
sku,
quantity,
case when b.shipping_amount is not null then ((b.shipping_amount)/(b.order_weight))*(b.final_weight) else A.shipping_amount end shipping_amount,
shipping_to,
payment_amount,
A.payment_status,
order_status,
order_placed_by,
order_type,
created_at,
is_campaign,
created_by
FROM raena_analytics.warehouse_analysis_stage1_3_v1 A
LEFT JOIN raena_analytics.OM_Logistic_final_shipping B ON A.reference_id= B.reference_id;
DROP TABLE IF EXISTS raena_analytics.warehouse_analysis_stage2_v1_final_weight;
CREATE TABLE raena_analytics.warehouse_analysis_stage2_v1_final_weight AS
SELECT order_id , reference_id , service_name ,
service_type ,
partner_name ,
actual_warehouse,
CASE
WHEN (sum(B.Final_weight*A.Quantity))<1.3 THEN 1
WHEN (sum(B.Final_weight*A.Quantity))>=1.3
AND (ABS(sum(B.Final_weight*A.Quantity)) - FLOOR(ABS(sum(B.Final_weight*A.Quantity)))) BETWEEN 0.3 AND 0.999999 THEN FLOOR(sum(B.Final_weight*A.Quantity))+1
ELSE FLOOR(sum(B.Final_weight*A.Quantity))
END AS sku_weight
FROM raena_analytics.warehouse_analysis_stage1_3 A
LEFT JOIN
(SELECT sku ,
B.name brand_name,
CASE
WHEN height*width*LENGTH/6000 > weight THEN height*width*LENGTH/6000
ELSE weight
END Final_weight,
height*width*LENGTH/6000 vw,
weight
FROM raena_catalog_management.product A
LEFT JOIN raena_catalog_management.brand B ON A.brand_id = B.id) B ON A.sku = B.sku
group by 1,2,3,4,5,6;
DROP TABLE IF EXISTS raena_analytics.warehouse_analysis_stage2_v1;
CREATE TABLE raena_analytics.warehouse_analysis_stage2_v1 AS
SELECT A.*,
B.brand_name,
B.Final_weight*sku_weight/sum(B.Final_weight) over(partition by A.order_id , A.reference_id ) Final_weight
FROM raena_analytics.warehouse_analysis_stage1_3 A
left join raena_analytics.warehouse_analysis_stage2_v1_final_weight C on A.order_id = C.order_id and A.reference_id = C.reference_id
LEFT JOIN
(SELECT sku ,
B.name brand_name,
CASE
WHEN height*width*LENGTH/6000 > weight THEN height*width*LENGTH/6000
ELSE weight
END Final_weight,
height*width*LENGTH/6000 vw,
weight
FROM raena_catalog_management.product A
LEFT JOIN raena_catalog_management.brand B ON A.brand_id = B.id) B ON A.sku = B.sku;
drop table if exists raena_analytics.calculated_ninja_jne_oct_shipping_fee;
CREATE TABLE raena_analytics.calculated_ninja_jne_oct_shipping_fee AS
SELECT order_id ,
reference_id ,
service_name ,
partner_id,
sum(Calculated_shipping_fee+insurance_fee) Calculated_shipping_fee
FROM
(SELECT order_id ,
A.reference_id ,
service_name ,
C.partner_id,
B.price*final_weight Calculated_shipping_fee ,
B.price,
final_weight,
(B.price*final_weight)*(CASE WHEN C.partner_id = 5 THEN C.insurance_fee ELSE C.insurance_fee END) /sum(B.price*final_weight)over(partition BY A.reference_id) AS insurance_fee
FROM
(SELECT order_id ,
reference_id ,
rate_id,
service_name ,
created_at,
sum(final_weight) final_weight
FROM raena_analytics.warehouse_analysis_stage2_v1
WHERE created_at::date BETWEEN '2022-10-01' AND '2022-10-14'
GROUP BY 1,
2,
3,
4,
5) A
LEFT JOIN raena_transport_management.logistic_rate B ON A.rate_id = B.id
LEFT JOIN
(SELECT DISTINCT reference_id ,
insurance_fee,
partner_id ,
service_id
FROM raena_transport_management.logistic_order
WHERE status IN ('RETURNED',
'DELIVERED',
'PICKED_UP',
'CREATED')) C ON A.reference_id=C.reference_id
) AA
GROUP BY 1,
2,
3,
4;
drop table if exists raena_analytics.calculated_feb_shipping_fee;
CREATE TABLE raena_analytics.calculated_feb_shipping_fee AS
SELECT order_id ,
reference_id ,
service_name ,
partner_id,
sum(Calculated_shipping_fee+insurance_fee) Calculated_shipping_fee
FROM
(SELECT order_id ,
A.reference_id ,
service_name ,
C.partner_id,
B.price*final_weight Calculated_shipping_fee ,
B.price,
final_weight,
(B.price*final_weight)*(C.insurance_fee ) /sum(B.price*final_weight)over(partition BY A.reference_id) AS insurance_fee
FROM
(SELECT order_id ,
reference_id ,
rate_id,
service_name ,
created_at,
sum(final_weight) final_weight
FROM raena_analytics.warehouse_analysis_stage2_v1
WHERE created_at::date BETWEEN '2022-11-01' AND '2023-02-20'
GROUP BY 1,
2,
3,
4,
5) A
LEFT JOIN raena_transport_management.logistic_rate B ON A.rate_id = B.id
LEFT JOIN
(SELECT DISTINCT reference_id ,
insurance_fee,
partner_id ,
service_id
FROM raena_transport_management.logistic_order
WHERE status IN ('RETURNED',
'DELIVERED',
'PICKED_UP',
'CREATED')) C ON A.reference_id=C.reference_id
) A
GROUP BY 1,
2,
3,
4;
DROP TABLE IF EXISTS raena_analytics.warehouse_analysis_stage2;
CREATE TABLE raena_analytics.warehouse_analysis_stage2 AS
SELECT A.*,
(final_weight*coalesce(coalesce(B.Calculated_shipping_fee,C.Calculated_shipping_fee),shipping_amount))/sum(final_weight) over(partition BY A.reference_id) new_shipment_amount
FROM raena_analytics.warehouse_analysis_stage2_v1 A
left join raena_analytics.calculated_ninja_jne_oct_shipping_fee B on A.order_id = B.order_id and A.reference_id = B.reference_id
left join raena_analytics.calculated_feb_shipping_fee C on A.order_id = C.order_id and A.reference_id = C.reference_id ;
select count(1) from raena_analytics.warehouse_analysis_stage2 ;
DROP TABLE IF EXISTS raena_analytics.shipping_fee_coupon_purpose;
CREATE TABLE raena_analytics.shipping_fee_coupon_purpose AS
SELECT O.order_id ,
C.sub_order_id,
payment_status,
order_status,
sub_order_status,
sub_order_shipment_status,
tierName,
payment_amount,
shipping_amount AS shipping_fee,
applied_shipping_amount AS applied_shipping_fee,
shipping_to shipping_to,
order_placed_by,
order_type,
email,
mobile,
CASE
WHEN D.min_date = O.Created_at
AND O.reseller_id = D.reseller_id THEN 'New'
ELSE 'Old'
END User_type ,
province,
created_at
FROM
(SELECT A.id AS order_id ,
reseller_id,
json_extract_path_text(A.reseller_info,'tierName',true) tierName,
json_extract_path_text(A.reseller_info,'email',true) email,
json_extract_path_text(A.reseller_info,'mobile',true) mobile,
lower(shipping_province) province,
payment_status,
status order_status,
shipping_to ,
case when provider='dsf' then 'DSF'
when provider='rdash360' then 'RDash'
when order_placed_by='merchant' then 'Merchant'
when order_placed_by='admin' then 'Admin Panel'
when order_placed_by='reseller' then 'App' end order_placed_by,
case
when is_campaign='true' then 'Campaign Order'
when is_consignment='true' then 'Consignment Order'
when provider='dsf' then 'DSF Order'
when order_placed_by='merchant' then 'Merchant Order'
when D.name is not null then 'Channel Order'
else 'Reseller Order' end order_type,
A.created_at
FROM raena_order_management.order A
left join raena_order_management.channel D on A.channel_id = D.id
WHERE A.is_archived = 'false'
AND cast(A.created_at AS date)>='2022-04-01'
ORDER BY A.created_at DESC) O
LEFT JOIN
(SELECT id sub_order_shipping_id,
order_id,
shipping_amount,
applied_shipping_amount,
status sub_order_shipment_status
FROM raena_order_management.sales_sub_order_shipment
ORDER BY 2) B ON O.order_id = B.order_id
LEFT JOIN
(SELECT id sub_order_id ,
order_id,
A.status sub_order_status,
sales_sub_order_shipment_id ,
B.discounted_price*B.quantity payment_amount
FROM raena_order_management.sales_sub_order A
INNER JOIN raena_analytics.business_report B ON A.order_id = B.external_id
AND A.parent_sku = B.sku
ORDER BY 2,
4 DESC) C ON B.sub_order_shipping_id= C.sales_sub_order_shipment_id
LEFT JOIN
(SELECT reseller_id,
min(created_at) min_date
FROM raena_order_management.order
WHERE (payment_status= 'Paid' or id like 'PL%')
AND is_archived = 'false'
GROUP BY reseller_id) D ON O.reseller_id = D.reseller_id
ORDER BY o.created_at DESC;
select count(1) from raena_analytics.shipping_fee_coupon_purpose;
DROP TABLE IF EXISTS raena_analytics.rate_sheet_wise_expected_warehouse ;
CREATE TABLE raena_analytics.rate_sheet_wise_expected_warehouse AS
SELECT order_id ,
reference_id Sub_order_shipping_id,
AA.sku ,
cast(case when actual_warehouse is null then 'Cikarang' else actual_warehouse end as varchar(50)) actual_warehouse ,
cast(case when expected_warehouse is null then 'Cikarang' else expected_warehouse end as varchar(50)) expected_warehouse,
CASE
WHEN actual_warehouse <>expected_warehouse THEN 'Yes'
ELSE 'No'
END AS missed_Inventory,
service_name ,
service_type ,
partner_name ,
shipping_to,
payment_amount,
payment_status ,
order_status,
order_placed_by,
order_type,
am_name,
am_email,
sum(quantity)quantity,
sum(new_shipment_amount) shipping_amount,
count(order_id) number_of_order,
brand_name,
tierName,
email,
mobile ,
province ,
User_type,
is_campaign,
cast((created_at+interval'7 Hours') AS date) AS created_date,
DSF_flag,
brand_type,
cogs
FROM
(
SELECT DISTINCT A.order_id ,
reference_id,
A.service_name ,
A.service_type ,
A.partner_name ,
actual_warehouse,
rate_id,
A.sku,
quantity,
coalesce(new_shipment_amount,shipping_amount)new_shipment_amount,
expected_warehouse,
coalesce(Y.Name,A.Brand_name) AS Brand_name ,
shipping_to,
payment_amount,
payment_status ,
order_status,
order_placed_by,
order_type,
AA.name am_name,
AA.email am_email,
tierName,
DD.email,
mobile ,
province ,
User_type,
is_campaign,
A.created_at,
case when A.order_id like '%DSF%' then 'Yes' Else 'No' end DSF_flag,
CASE
WHEN coalesce(Y.Name,A.Brand_name) IN ('LUXCRIME',
'SKINTIFIC',
'TRUEVE',
'SANIYE',
'BEAUDELAB',
'BRASOV',
'FACE REPUBLIC',
'SKIN1004',
'PREMIERE BEAUTE',
'ALLURA',
'LIPLAPIN',
'ROUNDLAB',
'FACE FLUX',
'DOLLGORAE',
'SKINUA',
'PUREFORET',
'SKINTIFIC',
'OHMYSKIN',
'FEAT FOR SKIN',
'SECONDATE',
'KYND',
'PURNAMA',
'BASE',
'LAVIE LASH',
'REI SKIN',
'USTRAA',
'BRUNBRUN PARISGLOWINC',
'SOONHAN',
'THE YEON',
'MIXSOON',
'KOSE COSMEPORT') THEN 'High GM'
WHEN coalesce(Y.Name,A.Brand_name) IN ('W DRESSROOM',
'BEAUSTA',
'Dewycel',
'GLUTANEX',
'HISTOIRE NATURELLE',
'FORENCOS',
'BELLFLOWER',
'MAXCLINIC'
'INGRID',
'ONE THING',
'ITFER') THEN 'EL/PL'
END brand_type
FROM raena_analytics.warehouse_analysis_stage2 A
LEFT JOIN
(SELECT DISTINCT order_id ,
tierName,
email,
mobile ,
province ,
User_type
FROM raena_analytics.shipping_fee_coupon_purpose) DD ON A.order_id = DD.order_id
LEFT JOIN raena_user_management.admin_user AA ON cast(A.created_by AS varchar) = cast(AA.id AS varchar)
LEFT JOIN raena_catalog_management.product X ON A.sku = X.sku
LEFT JOIN raena_catalog_management.brand Y ON X.brand_id =Y.id
LEFT JOIN raena_analytics.warehouse_analysis_stage1 D ON A.rate_id = D.id
--AND A.service_name = D.service_name
)AA
LEFT JOIN
(SELECT distinct A.external_id ,
A.sku ,
A.cogs
FROM raena_analytics.business_report A ) CA ON AA.sku = CA.sku
AND AA.order_id = CA.external_id
WHERE AA.sku IS NOT NULL
GROUP BY order_id ,
reference_id,
aa.sku ,
case when actual_warehouse is null then 'Cikarang' else actual_warehouse end ,
case when expected_warehouse is null then 'Cikarang' else expected_warehouse end ,
CASE
WHEN actual_warehouse <>expected_warehouse THEN 'Yes'
ELSE 'No'
END ,
service_name ,
service_type ,
partner_name ,
shipping_to,
payment_amount,
payment_status ,
order_status,
order_placed_by,
order_type,
am_name,
am_email,
brand_name,
tierName,
email,
mobile ,
province ,
User_type,
is_campaign,
cast((created_at+interval'7 Hours') AS date),
DSF_flag,
brand_type,
cogs;
update raena_analytics.rate_sheet_wise_expected_warehouse
set payment_amount =0
from raena_analytics.gm_dashboard
where discounted_price= 0
and raena_analytics.rate_sheet_wise_expected_warehouse.order_id = raena_analytics.gm_dashboard.external_id
and raena_analytics.rate_sheet_wise_expected_warehouse.sku = raena_analytics.gm_dashboard.sku ;
/*
update raena_analytics.rate_sheet_wise_expected_warehouse
set expected_warehouse = cast(CASE
WHEN expected_warehouse_code like 'WH-CGK%' THEN 'Cikarang'
WHEN expected_warehouse_code like 'WH-SRG%' THEN 'Semarang'
WHEN expected_warehouse_code like 'WH-SUB%' THEN 'Surabaya'
WHEN expected_warehouse_code like 'WH-UPG%' THEN 'Makassar'
WHEN expected_warehouse_code like 'WH-MES%' THEN 'Medan'
WHEN expected_warehouse_code like 'WH-AAP%' THEN 'Samarinda'
WHEN expected_warehouse_code like 'WH-BPN%' THEN 'Balikpapan'
WHEN expected_warehouse_code like 'VEN%' THEN 'Supplier_warehouse'
end as varchar)
from raena_order_management.sales_sub_order_shipment
where rate_sheet_wise_expected_warehouse.sub_order_shipping_id = id
and raena_order_management.sales_sub_order_shipment.expected_warehouse_code is not null;
*/
update raena_analytics.rate_sheet_wise_expected_warehouse
set expected_warehouse = 'Balikpapan'
where created_date>'2024-01-18' and expected_warehouse='Samarinda';
update raena_analytics.rate_sheet_wise_expected_warehouse
set missed_Inventory = CASE
WHEN actual_warehouse <>expected_warehouse THEN 'Yes'
ELSE 'No'
END
where 1=1;
select count(1) from raena_analytics.rate_sheet_wise_expected_warehouse ;
DROP TABLE IF EXISTS raena_analytics.quantity_trend_new;
CREATE TABLE raena_analytics.quantity_trend_new AS
SELECT is_campaign ,
frequency ,
transaction_date ,
child_sku ,
warehouse ,
quantity
FROM raena_analytics.quantity_trend_v1
WHERE transaction_date <'2022-04-01'
UNION
SELECT cast(is_campaign as varchar) ,
'Month',
date_trunc('Month',created_date) :: date ,
sku ,
actual_warehouse,
sum(quantity)
FROM raena_analytics.rate_sheet_wise_expected_warehouse
GROUP BY 1,
2,
3,
4,
5;
DROP TABLE IF EXISTS raena_analytics.quantity_trend;
CREATE TABLE raena_analytics.quantity_trend AS
SELECT *
FROM raena_analytics.quantity_trend_new;
DROP TABLE IF EXISTS raena_analytics.rate_sheet_wise_expected_warehouse_expected_shipping;
CREATE TABLE raena_analytics.rate_sheet_wise_expected_warehouse_expected_shipping AS
SELECT order_id ,
reference_id Sub_order_shipping_id,
sku ,
cast(case when actual_warehouse is null then 'Cikarang' else actual_warehouse end as varchar(50)) actual_warehouse ,
cast(case when expected_warehouse is null then 'Cikarang' else expected_warehouse end as varchar(50)) expected_warehouse,
CASE
WHEN actual_warehouse <>expected_warehouse THEN 'Yes'
ELSE 'No'
END AS missed_Inventory,
service_name ,
shipping_to,
payment_amount,
payment_status ,
order_status,
order_placed_by,
order_type,
am_name,
am_email,
sum(quantity)quantity,
sum(new_shipment_amount) shipping_amount,
sum(price) Per_kg_cost,
count(order_id) number_of_order,
brand_name,
tierName,
email,
mobile ,
province ,
User_type,
cast(created_at AS date) AS created_date
FROM
(SELECT DISTINCT A.order_id ,
reference_id,
A.service_name ,
actual_warehouse,
rate_id,
A.sku,
quantity,
new_shipment_amount,
expected_warehouse,
coalesce(Y.Name,A.Brand_name) AS Brand_name ,
shipping_to,
payment_amount,
D.price,
payment_status ,
order_status,
order_placed_by,
order_type,
AA.name am_name,
AA.email am_email,
tierName,
DD.email,
mobile ,
province ,
User_type,
A.created_at
FROM raena_analytics.warehouse_analysis_stage2 A
LEFT JOIN
(SELECT DISTINCT order_id ,
tierName,
email,
mobile ,
province ,
User_type
FROM raena_analytics.shipping_fee_coupon_purpose) DD ON A.order_id = DD.order_id
LEFT JOIN raena_user_management.admin_user AA ON cast(A.created_by AS varchar) = cast(AA.id AS varchar)
LEFT JOIN raena_catalog_management.product X ON A.sku = X.sku
LEFT JOIN raena_catalog_management.brand Y ON X.brand_id =Y.id
LEFT JOIN raena_analytics.warehouse_analysis_stage1 D ON A.rate_id = D.id
AND A.service_name = D.service_name)AA
WHERE sku IS NOT NULL
GROUP BY order_id ,
reference_id,
sku ,
case when actual_warehouse is null then 'Cikarang' else actual_warehouse end ,
case when expected_warehouse is null then 'Cikarang' else expected_warehouse end ,
CASE
WHEN actual_warehouse <>expected_warehouse THEN 'Yes'
ELSE 'No'
END ,
service_name ,
shipping_to,
payment_amount,
payment_status ,
order_status,
order_placed_by,
order_type,
am_name,
am_email,
brand_name,
tierName,
email,
mobile ,
province ,
User_type,
cast(created_at AS date);
/*
update raena_analytics.rate_sheet_wise_expected_warehouse_expected_shipping
set expected_warehouse = cast(CASE
WHEN expected_warehouse_code like 'WH-CGK%' THEN 'Cikarang'
WHEN expected_warehouse_code like 'WH-SRG%' THEN 'Semarang'
WHEN expected_warehouse_code like 'WH-SUB%' THEN 'Surabaya'
WHEN expected_warehouse_code like 'WH-UPG%' THEN 'Makassar'
WHEN expected_warehouse_code like 'WH-MES%' THEN 'Medan'
WHEN expected_warehouse_code like 'WH-AAP%' THEN 'Samarinda'
WHEN expected_warehouse_code like 'WH-BPN%' THEN 'Balikpapan'
WHEN expected_warehouse_code like 'VEN%' THEN 'Supplier_warehouse'
end as varchar)
from raena_order_management.sales_sub_order_shipment
where rate_sheet_wise_expected_warehouse_expected_shipping.sub_order_shipping_id = id
and raena_order_management.sales_sub_order_shipment.expected_warehouse_code is not null;
*/
update raena_analytics.rate_sheet_wise_expected_warehouse_expected_shipping
set expected_warehouse = 'Balikpapan'
where created_date>'2024-01-18' and expected_warehouse='Samarinda';
update raena_analytics.rate_sheet_wise_expected_warehouse_expected_shipping
set missed_Inventory = CASE
WHEN actual_warehouse <>expected_warehouse THEN 'Yes'
ELSE 'No'
END
where 1=1;
select count(1) from raena_analytics.rate_sheet_wise_expected_warehouse_expected_shipping ;
DROP TABLE IF EXISTS raena_analytics.om_distr_actaul_origin;
CREATE TABLE raena_analytics.om_distr_actaul_origin AS
SELECT DISTINCT sub_order_shipping_id,
service_name,
actual_warehouse,
expected_warehouse,
order_weight,
B.partner_id,
B.service_id,
rate_id,
destination_area_id,
origin_area_id AS actual_origin,
CASE
WHEN expected_warehouse='Cikarang' THEN 12416
WHEN expected_warehouse='Semarang' THEN 21599
WHEN expected_warehouse='Surabaya' THEN 30110
WHEN expected_warehouse='Makassar' THEN 64985
WHEN expected_warehouse='Medan' THEN 81092
WHEN expected_warehouse in ('Samarinda','Balikpapan') THEN 36700
END AS expected_origin
FROM raena_analytics.rate_sheet_wise_expected_warehouse_expected_shipping a
INNER JOIN raena_transport_management.logistic_order b ON a.sub_order_shipping_id=b.reference_id
LEFT JOIN raena_transport_management.logistic_rate c ON b.rate_id=c.id;
DROP TABLE IF EXISTS raena_analytics.om_distr_actaul_origin_2;
CREATE TABLE raena_analytics.om_distr_actaul_origin_2 AS
SELECT DISTINCT sub_order_shipping_id,
actual_warehouse,
expected_warehouse,
c.price,
c.eta_min
FROM raena_analytics.om_distr_actaul_origin b
INNER JOIN raena_transport_management.logistic_rate c ON b.expected_origin=c.origin_area_id
AND b.destination_area_id=c.destination_area_id
AND b.service_id = c.service_id
AND b.partner_id = c.partner_id
INNER JOIN raena_transport_management.logistic_service s ON s.id=c.service_id
AND s.name=b.service_name
WHERE rate_id NOTNULL
AND actual_warehouse!=expected_warehouse;
DROP TABLE IF EXISTS raena_analytics.OM_Logistic_base_exepected_warehouse;
CREATE TABLE raena_analytics.OM_Logistic_base_exepected_warehouse AS
SELECT DISTINCT cast(lo.created_at AS date) AS created_at,
reference_id,
order_weight,
lo.shipping_amount,
rate_id,
lr.price AS Shipping_fee_per_kg_weight,
lr.eta_min AS expected_eta_min
FROM raena_transport_management.logistic_order lo
INNER JOIN raena_analytics.om_distr_actaul_origin_2 lr ON lo.reference_id=lr.sub_order_shipping_id
WHERE lo.created_at >= '2022-04-01'
AND rate_id IS NOT NULL;
--order_id for suborders
DROP TABLE IF EXISTS raena_analytics.OM_Logistic_base_exepected_warehouse_2;
CREATE TABLE raena_analytics.OM_Logistic_base_exepected_warehouse_2 AS
SELECT created_at,
reference_id,
order_weight,
shipping_amount,
rate_id,
shipping_fee_per_kg_weight,
expected_eta_min,
coalesce(order_id,reference_id) AS order_id,
sku,
payment_amount,
sales_sub_order_id,
quantity
FROM
(SELECT a.*,
b.order_id,
b.parent_sku AS sku,
b.payment_amount ,
b.id AS sales_sub_order_id,
b.quantity
FROM raena_analytics.OM_Logistic_base_exepected_warehouse a
LEFT JOIN raena_order_management.sales_sub_order b ON a.reference_id=b.sales_sub_order_shipment_id) A;
---sku tagging
DROP TABLE IF EXISTS raena_analytics.OM_Logistic_base_exepected_warehouse_3;
CREATE TABLE raena_analytics.OM_Logistic_base_exepected_warehouse_3 AS
SELECT DISTINCT a.*,
coalesce(b.sku,a.sku) AS new_sku,
coalesce(b.quantity,a.quantity) AS new_quantity
FROM raena_analytics.OM_Logistic_base_exepected_warehouse_2 a
LEFT JOIN raena_order_management.sales_sub_order_parent_child b ON a.sales_sub_order_id=b.sales_sub_order_id;
DROP TABLE IF EXISTS raena_analytics.OM_Logistic_base_exepected_warehouse_4;
CREATE TABLE raena_analytics.OM_Logistic_base_exepected_warehouse_4 AS
SELECT Created_at,
order_id,
reference_id,
sales_sub_order_id,
new_quantity AS quantity,
order_weight,
shipping_amount,
shipping_fee_per_kg_weight,
expected_eta_min,
new_sku,
payment_amount,
b.weight AS actual_weight,
b.volume_weight
FROM raena_analytics.OM_Logistic_base_exepected_warehouse_3 a
LEFT JOIN
(SELECT sku,
id,
weight,
(height*width*LENGTH)/6000 AS volume_weight
FROM raena_catalog_management.product) b ON a.new_sku=b.sku
WHERE reference_id LIKE 'SH%'
ORDER BY 2;
--final dataset
DROP TABLE IF EXISTS raena_analytics.OM_Logistic_final_shipping_exepected_warehouse_base;
CREATE TABLE raena_analytics.OM_Logistic_final_shipping_exepected_warehouse_base AS
SELECT Created_at,
order_id,
reference_id,
paymnet_amount,
shipping_amount,
Shipping_fee_per_kg_weight,
expected_eta_min,
CASE
WHEN order_weight<1.3 THEN 1
WHEN order_weight>=1.3
AND (ABS(order_weight) - FLOOR(ABS(order_weight))) BETWEEN 0.3 AND 0.999999 THEN FLOOR(order_weight)+1
ELSE FLOOR(order_weight)
END AS order_weight,
CASE
WHEN compared_weight<1.3 THEN 1
WHEN compared_weight>=1.3
AND (ABS(compared_weight) - FLOOR(ABS(compared_weight))) BETWEEN 0.3 AND 0.999999 THEN FLOOR(compared_weight)+1
ELSE FLOOR(compared_weight)
END AS final_weight
FROM
(SELECT *,
CASE
WHEN volume_weight>actual_weight THEN volume_weight
WHEN volume_weight<actual_weight THEN actual_weight
WHEN volume_weight=actual_weight THEN actual_weight
END AS compared_weight
FROM
(SELECT Created_at,
order_id,
reference_id,
shipping_amount,
order_weight,
Shipping_fee_per_kg_weight,
expected_eta_min,
(sum(quantity*actual_weight)) AS actual_weight,
(sum(quantity*volume_weight)) AS volume_weight,
sum(payment_amount) AS paymnet_amount
FROM raena_analytics.OM_Logistic_base_exepected_warehouse_4
GROUP BY 1,
2,
3,
4,
5,
6,
7)A) B
ORDER BY final_weight DESC;
select count(1) from raena_analytics.OM_Logistic_final_shipping_exepected_warehouse_base ;
DROP TABLE IF EXISTS raena_analytics.OM_Logistic_final_shipping_exepected_warehouse;
CREATE TABLE raena_analytics.OM_Logistic_final_shipping_exepected_warehouse AS
SELECT DISTINCT reference_id,
final_weight AS expected_warehouse_weight,
Shipping_fee_per_kg_weight*final_weight AS Expected_shipping_fee,
expected_eta_min
FROM raena_analytics.OM_Logistic_final_shipping_exepected_warehouse_base a;
--select count(*),count(distinct reference_id) from raena_analytics.OM_Logistic_final_shipping_exepected_warehouse
DROP TABLE IF EXISTS raena_analytics.rate_sheet_wise_expected_warehouse_expected_shipping_final_v11;
CREATE TABLE raena_analytics.rate_sheet_wise_expected_warehouse_expected_shipping_final_v11 AS
SELECT DISTINCT a.Sub_order_shipping_id,
(b.Expected_shipping_fee+(case when o.partner_id = 5 then insurance_fee/100 else insurance_fee end )) AS Expected_shipping_fee,
expected_eta_min,
lr.eta_min AS actual_eta_min,
o.order_weight
FROM raena_analytics.rate_sheet_wise_expected_warehouse_expected_shipping a
LEFT JOIN raena_analytics.OM_Logistic_final_shipping_exepected_warehouse b ON a.Sub_order_shipping_id=b.reference_id
INNER JOIN raena_transport_management.logistic_order o ON a.Sub_order_shipping_id=o.reference_id
INNER JOIN raena_transport_management.logistic_rate lr ON o.rate_id=lr.id
WHERE Sub_order_shipping_id IS NOT NULL;
drop table if exists raena_analytics.rate_sheet_wise_expected_warehouse_expected_shipping_final;
create table raena_analytics.rate_sheet_wise_expected_warehouse_expected_shipping_final
as
select A.*,AA.new_sku sku,compared_weight sku_weight ,sum((compared_weight/order_weight*expected_shipping_fee)) sku_level_expected_shipping_fee
from raena_analytics.rate_sheet_wise_expected_warehouse_expected_shipping_final_v11 A
left join
(SELECT order_id , sales_sub_order_id , reference_id ,new_sku,
CASE
WHEN new_volume_weight>new_actual_weight THEN new_volume_weight
WHEN new_volume_weight<new_actual_weight THEN new_actual_weight
WHEN new_volume_weight=new_actual_weight THEN new_actual_weight
END AS compared_weight
FROM
(SELECT *,(quantity*actual_weight) AS new_actual_weight,
(quantity*volume_weight) AS new_volume_weight
FROM raena_analytics.OM_Logistic_base_exepected_warehouse_4
) A ) AA on A.sub_order_shipping_id = AA.reference_id
group by 1,2,3,4,5,6,7;
DROP TABLE IF EXISTS raena_analytics.om_shipment_jtr_shipping_fee_base_2;
CREATE TABLE raena_analytics.om_shipment_jtr_shipping_fee_base_2 AS
SELECT sub_order_shipping_id,
actual_warehouse,
expected_warehouse,
b.eta_min AS actual__JTR_min_eta,
b.price AS actual_JTR_per_kg_price
FROM raena_analytics.om_distr_actaul_origin a
INNER JOIN raena_transport_management.logistic_rate b ON a.actual_origin=b.origin_area_id
AND a.destination_area_id=b.destination_area_id
WHERE b.service_id=2;
DROP TABLE IF EXISTS raena_analytics.om_shipment_jtr_shipping_fee_base_3;
CREATE TABLE raena_analytics.om_shipment_jtr_shipping_fee_base_3 AS
SELECT sub_order_shipping_id,
actual_warehouse,
expected_warehouse,
b.eta_min AS expected__JTR_min_eta,
b.price AS expected_JTR_per_kg_price
FROM raena_analytics.om_distr_actaul_origin a
INNER JOIN raena_transport_management.logistic_rate b ON a.expected_origin=b.origin_area_id
AND a.destination_area_id=b.destination_area_id
WHERE b.service_id=2;
DROP TABLE IF EXISTS raena_analytics.om_shipment_jtr_shipping_fee_base_4;
CREATE TABLE raena_analytics.om_shipment_jtr_shipping_fee_base_4 AS
SELECT a.*,
b.actual__JTR_min_eta,
b.actual_JTR_per_kg_price,
c.expected__JTR_min_eta,
c.expected_JTR_per_kg_price
FROM raena_analytics.om_distr_actaul_origin a
INNER JOIN raena_analytics.om_shipment_jtr_shipping_fee_base_2 b ON a.sub_order_shipping_id=b.sub_order_shipping_id
INNER JOIN raena_analytics.om_shipment_jtr_shipping_fee_base_3 c ON a.sub_order_shipping_id=c.sub_order_shipping_id
where a.rate_id is not null;
select count(1)jtr_shipping_base from raena_analytics.om_shipment_jtr_shipping_fee_base_4 ;
DROP TABLE IF EXISTS raena_analytics.om_shipment_jtr_shipping_fee_base_5;
CREATE TABLE raena_analytics.om_shipment_jtr_shipping_fee_base_5 AS
SELECT DISTINCT cast(lo.created_at AS date) AS created_at,
reference_id,
lo.order_weight,
lo.shipping_amount,
lr.actual__JTR_min_eta,
lr.actual_JTR_per_kg_price,
lr.expected__JTR_min_eta,
lr.expected_JTR_per_kg_price
FROM raena_transport_management.logistic_order lo
INNER JOIN raena_analytics.om_shipment_jtr_shipping_fee_base_4 lr ON lo.reference_id=lr.sub_order_shipping_id
WHERE lo.created_at >= '2022-04-01'
AND lo.rate_id IS NOT NULL;
DROP TABLE IF EXISTS raena_analytics.om_shipment_jtr_shipping_fee_base_6;
CREATE TABLE raena_analytics.om_shipment_jtr_shipping_fee_base_6 AS
SELECT created_at,
reference_id,
order_weight,
shipping_amount,
actual__JTR_min_eta,
actual_JTR_per_kg_price,
expected__JTR_min_eta,
expected_JTR_per_kg_price,
coalesce(order_id,reference_id) AS order_id,
sku,
payment_amount,
sales_sub_order_id,
quantity
FROM
(SELECT a.*,
b.order_id,
b.parent_sku AS sku,
b.payment_amount ,
b.id AS sales_sub_order_id,
b.quantity
FROM raena_analytics.om_shipment_jtr_shipping_fee_base_5 a
LEFT JOIN raena_order_management.sales_sub_order b ON a.reference_id=b.sales_sub_order_shipment_id) A;
---sku tagging
DROP TABLE IF EXISTS raena_analytics.om_shipment_jtr_shipping_fee_base_7;
CREATE TABLE raena_analytics.om_shipment_jtr_shipping_fee_base_7 AS
SELECT DISTINCT a.*,
coalesce(b.sku,a.sku) AS new_sku,
coalesce(b.quantity,a.quantity) AS new_quantity
FROM raena_analytics.om_shipment_jtr_shipping_fee_base_6 a
LEFT JOIN raena_order_management.sales_sub_order_parent_child b ON a.sales_sub_order_id=b.sales_sub_order_id;
DROP TABLE IF EXISTS raena_analytics.om_shipment_jtr_shipping_fee_base_8;
CREATE TABLE raena_analytics.om_shipment_jtr_shipping_fee_base_8 AS
SELECT Created_at,
order_id,
reference_id,
sales_sub_order_id,
new_quantity AS quantity,
order_weight,
shipping_amount,
actual__JTR_min_eta,
actual_JTR_per_kg_price,
expected__JTR_min_eta,
expected_JTR_per_kg_price,
new_sku,
payment_amount,
b.weight AS actual_weight,
b.volume_weight
FROM raena_analytics.om_shipment_jtr_shipping_fee_base_7 a
LEFT JOIN
(SELECT sku,
id,
weight,
(height*width*LENGTH)/6000 AS volume_weight
FROM raena_catalog_management.product) b ON a.new_sku=b.sku
WHERE reference_id LIKE 'SH%'
ORDER BY 2;
--final dataset
DROP TABLE IF EXISTS raena_analytics.om_shipment_jtr_shipping_fee_base_9;
CREATE TABLE raena_analytics.om_shipment_jtr_shipping_fee_base_9 AS
SELECT Created_at,
order_id,
reference_id,
paymnet_amount,
shipping_amount,
actual__JTR_min_eta,
actual_JTR_per_kg_price,
expected__JTR_min_eta,
expected_JTR_per_kg_price,
CASE
WHEN order_weight<1.3 THEN 1
WHEN order_weight>=1.3
AND (ABS(order_weight) - FLOOR(ABS(order_weight))) BETWEEN 0.3 AND 0.999999 THEN FLOOR(order_weight)+1
ELSE FLOOR(order_weight)
END AS order_weight,
CASE
WHEN compared_weight<1.3 THEN 1
WHEN compared_weight>=1.3
AND (ABS(compared_weight) - FLOOR(ABS(compared_weight))) BETWEEN 0.3 AND 0.999999 THEN FLOOR(compared_weight)+1
ELSE FLOOR(compared_weight)
END AS final_weight
FROM
(SELECT *,
CASE
WHEN volume_weight>actual_weight THEN volume_weight
WHEN volume_weight<actual_weight THEN actual_weight
WHEN volume_weight=actual_weight THEN actual_weight
END AS compared_weight
FROM
(SELECT Created_at,
order_id,
reference_id,
shipping_amount,
order_weight,
actual__JTR_min_eta,
actual_JTR_per_kg_price,
expected__JTR_min_eta,
expected_JTR_per_kg_price,
(sum(quantity*actual_weight)) AS actual_weight,
(sum(quantity*volume_weight)) AS volume_weight,
sum(payment_amount) AS paymnet_amount
FROM raena_analytics.om_shipment_jtr_shipping_fee_base_8
GROUP BY 1,
2,
3,
4,
5,
6,
7,
8,
9) A) B
ORDER BY final_weight DESC;
select count(1) from raena_analytics.om_shipment_jtr_shipping_fee_base_9 ;
DROP TABLE IF EXISTS raena_analytics.om_shipment_jtr_shipping_fee_base_10;
CREATE TABLE raena_analytics.om_shipment_jtr_shipping_fee_base_10 AS
SELECT DISTINCT reference_id,
final_weight ,
actual__JTR_min_eta,
actual_JTR_per_kg_price*final_weight AS actual_JTR_shipping_fee,
expected__JTR_min_eta,
expected_JTR_per_kg_price*final_weight AS expected_JTR_shipping_fee
FROM raena_analytics.om_shipment_jtr_shipping_fee_base_9 a
WHERE final_weight>=10;
DROP TABLE IF EXISTS raena_analytics.om_shipment_jtr_shipping_fee_base_11_v11 ;
CREATE TABLE raena_analytics.om_shipment_jtr_shipping_fee_base_11_v11 AS
SELECT DISTINCT a.Sub_order_shipping_id,
(b.actual_JTR_shipping_fee+(CASE WHEN o.partner_id = 5 then insurance_fee/100 else insurance_fee end )) AS actual_JTR_shipping_fee,
actual__JTR_min_eta,
(b.expected_JTR_shipping_fee+(CASE WHEN o.partner_id = 5 then insurance_fee/100 else insurance_fee end )) AS expected_JTR_shipping_fee,
expected__JTR_min_eta
FROM raena_analytics.rate_sheet_wise_expected_warehouse_expected_shipping a
LEFT JOIN raena_analytics.om_shipment_jtr_shipping_fee_base_10 b ON a.Sub_order_shipping_id=b.reference_id
INNER JOIN raena_transport_management.logistic_order o ON a.Sub_order_shipping_id=o.reference_id and o.status <>'CANCELLED'
WHERE Sub_order_shipping_id IS NOT NULL;
drop table if exists raena_analytics.om_shipment_jtr_shipping_fee_base_11;
create table raena_analytics.om_shipment_jtr_shipping_fee_base_11
as
select A.*,AA.new_sku sku,compared_weight sku_weight ,
sum((compared_weight/order_weight)*expected_jtr_shipping_fee) sku_level_jtr_expected_shipping_fee,
sum((compared_weight/order_weight)*actual_jtr_shipping_fee) sku_level_jtr_actual_shipping_fee
from raena_analytics.om_shipment_jtr_shipping_fee_base_11_v11 A
left join
(SELECT order_id, reference_id ,new_sku,
sum(CASE
WHEN new_volume_weight>new_actual_weight THEN new_volume_weight
WHEN new_volume_weight<new_actual_weight THEN new_actual_weight
WHEN new_volume_weight=new_actual_weight THEN new_actual_weight
END) over(partition by reference_id) order_weight,
CASE
WHEN new_volume_weight>new_actual_weight THEN new_volume_weight
WHEN new_volume_weight<new_actual_weight THEN new_actual_weight
WHEN new_volume_weight=new_actual_weight THEN new_actual_weight
END AS compared_weight
FROM
(SELECT *,
(quantity*actual_weight) AS new_actual_weight,
(quantity*volume_weight) AS new_volume_weight
FROM (select created_at ,order_id ,reference_id ,order_weight ,new_sku,actual_weight,volume_weight ,sum(quantity) quantity
from raena_analytics.om_shipment_jtr_shipping_fee_base_8
group by 1,2,3,4,5,6,7) AAA
) A
) AA on A.sub_order_shipping_id = AA.reference_id
group by 1,2,3,4,5,6,7;
DROP TABLE IF EXISTS raena_analytics.om_shipment_jtr_shipping_fee_base_12;
CREATE TABLE raena_analytics.om_shipment_jtr_shipping_fee_base_12 AS
SELECT b.*,
a.expected_eta_min
FROM raena_analytics.rate_sheet_wise_expected_warehouse_expected_shipping_final a
INNER JOIN raena_analytics.om_shipment_jtr_shipping_fee_base_11 b ON a.Sub_order_shipping_id=b.Sub_order_shipping_id
AND expected__JTR_min_eta-a.expected_eta_min<=3;
drop table if exists raena_analytics.rate_sheet_wise_expected_warehouse_destination_area_id;
CREATE TABLE raena_analytics.rate_sheet_wise_expected_warehouse_destination_area_id AS
select distinct order_id ,
reference_id Sub_order_shipping_id,
destination_area_id
FROM
(SELECT DISTINCT A.order_id ,
reference_id,
destination_area_id
FROM raena_analytics.warehouse_analysis_stage2 A
LEFT JOIN raena_analytics.warehouse_analysis_stage1 D ON A.rate_id = D.id
AND A.service_name = D.service_name
WHERE sku IS NOT null
)AA;
" > /home/ec2-user/cronjob/redshift/sql_code/distributed_warehouse_etl_cron.sql
psql "host=redshift-cluster-1.cdqj58hfx4p7.ap-southeast-1.redshift.amazonaws.com user=dbadmin dbname=analytics port=5439 password=5qCif6eyY3Kmg4z" -f /home/ec2-user/cronjob/redshift/sql_code/distributed_warehouse_etl_cron.sql