0% found this document useful (0 votes)
38 views

Old Query Bpost

ssswswswsw

Uploaded by

Gaurav Rajan
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views

Old Query Bpost

ssswswswsw

Uploaded by

Gaurav Rajan
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 7

------- Query for monthly run for zip codes

WITH contact AS
(
SELECT order_number,
ts_case_created,
ts_case_closed,
case_country,
sk_case,
sk_case_customer_segment,
case_number,
TRIM(t.shipment_number) AS shipment_number

FROM
(SELECT CASE WHEN LENGTH(CC.cc_shipmentnumber__c) = 16
THEN ARRAY[CC.cc_shipmentnumber__c]
WHEN strpos(CC.cc_shipmentnumber__c, '-') > 0
THEN split(CC.cc_shipmentnumber__c, '-')
WHEN strpos(CC.cc_shipmentnumber__c, '&') > 0
THEN split(CC.cc_shipmentnumber__c, '&')
WHEN strpos(CC.cc_shipmentnumber__c, '//') > 0
THEN split(CC.cc_shipmentnumber__c, '//')
WHEN strpos(CC.cc_shipmentnumber__c, '/') > 0
THEN split(CC.cc_shipmentnumber__c, '/')
WHEN strpos(CC.cc_shipmentnumber__c, ',') > 0
THEN split(CC.cc_shipmentnumber__c, ',')
WHEN strpos(CC.cc_shipmentnumber__c, ';') > 0
THEN split(CC.cc_shipmentnumber__c, ';')
WHEN strpos(CC.cc_shipmentnumber__c, ' ') > 0
THEN split(CC.cc_shipmentnumber__c, ' ')
WHEN CC.cc_shipmentnumber__c IS NULL THEN NULL
END
AS shipment_number_array,
CCO.ordertable_ordernumber AS order_number,
CCO.casenumber as case_number,
CC.sk_case AS sk_case,
CC.closed_date AS ts_case_closed,
CCO.case_created_date AS ts_case_created,
sf_appdomain.countryisocode AS case_country,
CC.sk_case_customer_segment as sk_case_customer_segment

FROM hive.dwh_confidential.v_cuca_case_order CCO


JOIN hive.dwh_confidential.d_sf_case CC
ON CCO.casenumber = CC.case_number
JOIN dwh_insider.d_sf_appdomain sf_appdomain
ON CC.sk_salesforce_appdomain = sf_appdomain.sk_salesforce_appdomain
LEFT JOIN dwh_insider.f_sf_event_detail FSED ON CCO.sk_case = FSED.sk_case
WHERE CCO.high_level_contactcategory = 'Delivery'
AND CCO.contactcategory = 'Parcel missing'
GROUP BY CC.cc_shipmentnumber__c,
CC.sk_case_origin,
CC.sk_case_handling_context,
CCO.ordertable_ordernumber,
CCO.casenumber,
CC.sk_case,
CC.closed_date,
CCO.case_created_date,
sf_appdomain.countryisocode,
CC.sk_case_customer_segment) AS tmp
CROSS JOIN UNNEST(shipment_number_array) AS t (shipment_number)
),
/* enrich case data with parcel item/order item information and check for
miscategorizations based on
manual refund rules*/

parcel_item_information AS (
SELECT -- parcel related information

FCCS.shipment_number AS shipment_number,
L.inventory_stock_location_name AS outbound_warehouse,
d_carrier.carrier_name AS delivery_carrier_name,
FUL_SERV.fulfillment_service AS selected_fulfill_service,
FFSOI.ts_shipment AS ts_shipment,
beta.dangerous_goods, --added by gaurav
FCCS.ts_customer_delivery AS ts_customer_delivery,
(FCCS.is_return_to_sender = 1) AS is_return_to_sender,
OP_ADD.shipping_zip,

DPM.method_name as payment_method,

MR.sum_refund_amount AS refund_amount,
FCCS.is_delivered_to_home AS is_delivered_to_home,
FCCS.is_delivered_to_pickup_point AS is_delivered_to_pickup_point,
FCCS.is_home_target AS is_home_target,
FCCS.is_pickup_point_target AS is_pickup_point_target,

FCCS.ts_customer_delivery IS NOT NULL AS is_delivered,


FFSOI.sk_customer,

-- case related information


DC.sk_case,
DC.ts_case_created,
DC.ts_case_closed,
DC.case_number,
DC.case_country,
DC.ts_case_created IS NOT NULL AS is_parcel_missing,
DC.ts_case_created > FCCS.ts_customer_delivery AS
is_parcel_missing_after_succ_delivery,

case
when FCCS.is_home_target = 1 then 'Home'
when FCCS.is_pickup_point_target = 1 then 'PuP'
else 'Unknown' end as delivery_destination,

format_datetime(FCCS.ts_shipment_shipped, 'xxxx-MMMM') AS year_month,

CASE
WHEN uuid_inventory_stock_location = '2326fbd5-a5f6-424a-9a9d-3f1d47b13909' THEN
'Moissy'
WHEN uuid_inventory_stock_location = '87ad6f06-2471-4ed8-9ff5-fd66e5a33f73' THEN
'Brunna'
WHEN uuid_inventory_stock_location = 'b1ad94ac-104a-457e-b17d-d52dfe88ac3f' THEN
'Gardno'
WHEN uuid_inventory_stock_location = 'c1b71d53-d9cb-442a-8192-fb56346ebc6f' THEN
'Stradella'
WHEN uuid_inventory_stock_location = 'e74ea662-d38d-4dca-a8c7-9c82a40dfe9a' THEN
'Olsztynek'
WHEN uuid_inventory_stock_location = '05e1ed1a-6626-4d01-9dd9-d682b546d08c' THEN
'Brzoza'
WHEN uuid_inventory_stock_location = '1e57b2b6-907b-4676-8766-339a1d596e59' THEN
'Mönchengladbach'
WHEN uuid_inventory_stock_location = '32eff430-f835-44ce-947a-4a1fdce1c615' THEN
'Erfurt'
WHEN uuid_inventory_stock_location = '3f98a525-6ce7-4912-a365-198c45b3adb9' THEN
'Szczecin (IDC)'
WHEN uuid_inventory_stock_location = '40899f30-9ff9-4094-9ad6-0694b9051152' THEN
'Brieselang'
WHEN uuid_inventory_stock_location = '4cd29a96-0cc2-43c7-9a50-53602294c3a7' THEN
'Rotterdam'
WHEN uuid_inventory_stock_location = '8f1e0274-a411-4988-9652-c3195a80b57c' THEN
'Grossbeeren'
WHEN uuid_inventory_stock_location = '95eacdb2-4122-4f46-bb9e-2f1eb631a26c' THEN
'Halle (IDC)'
WHEN uuid_inventory_stock_location = '963d4dba-babc-4e3b-84ca-3d56895aa1bc' THEN
'Verona'
WHEN uuid_inventory_stock_location = '9a2c9671-fb0a-401e-86c6-285b77cc0557' THEN
'Madrid'
WHEN uuid_inventory_stock_location = 'b6f6cf2b-5e63-4693-a658-99748b871d7e' THEN
'Lahr'
WHEN uuid_inventory_stock_location = 'd9f25308-2907-460e-a8a4-8f9cea33051c' THEN
'Lodz'
WHEN uuid_inventory_stock_location = 'e52667dc-7511-45fc-98e4-b96f48bfa330' THEN
'Poznan'
WHEN uuid_inventory_stock_location = 'f4276462-6afc-4685-9471-86e6c1cb994b' THEN
'Berlin (IDC)'
ELSE uuid_inventory_stock_location
END AS warehouse,

---- customer segment information


clv.holistic_value_segment,
-- max(MR.array_refund_reasons) AS
Refund_reason,
count(distinct FFSOI.sk_shipment_order_item_id) as items_count,
MAX(FFSOI.tracking_number) FILTER(WHERE FFSOI.cancel_flag = 0) AS
tracking_number,
MAX(FUL_SERV.fulfillment_service) FILTER(WHERE FFSOI.cancel_flag = 0) AS
shipping_option,
MAX(DEST.destination_name) FILTER(WHERE FFSOI.cancel_flag = 0) AS
destination,
-- GMV shipment level related information
sum(OP.gmv_bef_cancellation) AS gmv_bef_cancellation,
sum(OP.gmv_bef_ret_provision) AS final_gmv ,
sum(OP.gmv_bef_return) as gmv_bef_return

/* information on orderpositions, parcel items, parcel*/


FROM
dwh_confidential.f_fos_shipment_order_items FFSOI
JOIN
(
select
sk_order,
sk_order_position,
order_date,
sum(gmv_bef_return) as gmv_bef_return,
sum(gmv_bef_cancellation) as gmv_bef_cancellation,
sum(gmv_bef_ret_provision) as gmv_bef_ret_provision

from
dwh_confidential.f_salesorder_position
where
date(order_date) between date('2023-01-01') and date('2023-12-31')
group by
1,
2,
3

) OP on OP.sk_order = ffsoi.sk_sales_order_id and OP.sk_order_position =


ffsoi.sk_orderposition

/*left join dwh_insider.d_product_config as item_d on FFSOI.sk_article


=item_d.sk_article*/
JOIN dwh_confidential.f_salesorder_address OP_ADD
ON OP.SK_ORDER = OP_ADD.sk_order

-- LEFT JOIN dwh_insider.d_product_config as beta /*added by gaurav – working */


-- ON FFSOI.sk_article=beta.sk_config /*added by gaurav – working */

---- Join by Tiasha


left join dwh_insider.d_blended_article_simple as item_d on ffsoi.sk_article =
item_d.sk_article
join dwh_insider.d_product_config as beta on item_d.sk_config = beta.sk_config

LEFT JOIN hive.dwh_confidential.f_cot_carrier_shipments FCCS


ON FFSOI.sk_shipment_id = FCCS.sk_shipment_id
AND FCCS.sk_shipment_shipped_date >= 20230101
LEFT JOIN hive.dwh_insider.d_delivery_products dp_01
ON FFSOI.sk_delivery_product = dp_01.sk_delivery_product
LEFT JOIN hive.dwh_insider.d_delivery_products dp_02
ON FCCS.sk_delivery_product = dp_02.sk_delivery_product
LEFT JOIN hive.dwh_insider.d_delivery_carriers d_carrier
ON COALESCE(dp_01.sk_delivery_carrier, dp_02.sk_delivery_carrier) =
d_carrier.sk_delivery_carrier
LEFT JOIN hive.dwh_insider.d_inventory_stock_location L ON
FFSOI.sk_stock_location_id = L.sk_inventory_stock_location
LEFT JOIN hive.dwh_insider.d_shp_fulfillment_services FUL_SERV ON
FFSOI.sk_selected_fulfill_service = FUL_SERV.sk_fulfillment_service
LEFT JOIN hive.dwh_insider.d_delivery_destinations DEST ON
DEST.sk_delivery_destination = COALESCE(dp_02.sk_delivery_destination,
dp_01.sk_delivery_destination)
LEFT JOIN dwh_insider.d_payment_method DPM ON FFSOI.sk_payment_method =
DPM.sk_payment_method
LEFT JOIN (
select mr.sk_order, mr.sk_orderposition, manual_refund_reason_name,
cast((created_timestamp) as date) as mr_created_date,
sum(amt_manual_refund_refund_eur) as sum_refund_amount
from dwh_confidential.f_salesforce_manual_refund mr

left join dwh_insider.d_manual_refund_reason as reason


on mr.sk_manual_refund_reason = reason.sk_manual_refund_reason

where manual_refund_reason_name in ('DELIVERY_IS_MISSING_SHIPPING_PROVIDER')--


'DELIVERY_IS_MISSING_WAREHOUSE')
and sk_orderdate between 20230101 and 20231231
group by 1,2,3,4
) as MR

ON mr.sk_order = OP.sk_order
and mr.sk_orderposition = OP.sk_order_position

/* contact table */
LEFT JOIN contact DC
ON FFSOI.shipment_number = DC.shipment_number

JOIN hive.dwh_insider.d_sales_channels SC
ON FCCS.sk_sales_channel = SC.sk_sales_channels

-- LEFT JOIN dwh_insider.d_salesforce_case_customer_segment AS cseg


-- ON DC.sk_case_customer_segment = cseg.sk_case_customer_segment

LEFT JOIN (Select * from dwh_confidential.v_f_customer_value_segments_holistic


where sk_valid_until=20301231) as clv
ON FFSOI.sk_customer = clv.sk_kunden

WHERE DC.shipment_number IS NOT NULL


AND DC.case_country IN ('BE')
AND d_carrier.carrier_name IN ('BPO','DPD','GLS')
AND SC.cfa = 'zalando-fashion-store'
AND (FFSOI.is_zalando_item = 1 OR FFSOI.is_zfs_item = 1) --- ZALANDO FULFILLED
AND FCCS.ts_shipment_shipped BETWEEN TIMESTAMP '2023-01-01' and TIMESTAMP '2023-
12-31'
GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28
--28 added by gaurav
),

overall as
(
SELECT
dst.country_code,
CAR.carrier_name,
clv.holistic_value_segment,
substring(OP_ADD.shipping_zip,1,2) as zipcode,
format_datetime(ts_shipment_shipped, 'xxxx-MMMM') AS year_month,
case
when is_home_target = 1 then 'Home'
when is_pickup_point_target = 1 then 'PuP'
else 'Unknown' end as delivery_destination,

CASE
WHEN uuid_inventory_stock_location = '2326fbd5-a5f6-424a-9a9d-3f1d47b13909' THEN
'Moissy'
WHEN uuid_inventory_stock_location = '87ad6f06-2471-4ed8-9ff5-fd66e5a33f73' THEN
'Brunna'
WHEN uuid_inventory_stock_location = 'b1ad94ac-104a-457e-b17d-d52dfe88ac3f' THEN
'Gardno'
WHEN uuid_inventory_stock_location = 'c1b71d53-d9cb-442a-8192-fb56346ebc6f' THEN
'Stradella'
WHEN uuid_inventory_stock_location = 'e74ea662-d38d-4dca-a8c7-9c82a40dfe9a' THEN
'Olsztynek'
WHEN uuid_inventory_stock_location = '05e1ed1a-6626-4d01-9dd9-d682b546d08c' THEN
'Brzoza'
WHEN uuid_inventory_stock_location = '1e57b2b6-907b-4676-8766-339a1d596e59' THEN
'Mönchengladbach'
WHEN uuid_inventory_stock_location = '32eff430-f835-44ce-947a-4a1fdce1c615' THEN
'Erfurt'
WHEN uuid_inventory_stock_location = '3f98a525-6ce7-4912-a365-198c45b3adb9' THEN
'Szczecin (IDC)'
WHEN uuid_inventory_stock_location = '40899f30-9ff9-4094-9ad6-0694b9051152' THEN
'Brieselang'
WHEN uuid_inventory_stock_location = '4cd29a96-0cc2-43c7-9a50-53602294c3a7' THEN
'Rotterdam'
WHEN uuid_inventory_stock_location = '8f1e0274-a411-4988-9652-c3195a80b57c' THEN
'Grossbeeren'
WHEN uuid_inventory_stock_location = '95eacdb2-4122-4f46-bb9e-2f1eb631a26c' THEN
'Halle (IDC)'
WHEN uuid_inventory_stock_location = '963d4dba-babc-4e3b-84ca-3d56895aa1bc' THEN
'Verona'
WHEN uuid_inventory_stock_location = '9a2c9671-fb0a-401e-86c6-285b77cc0557' THEN
'Madrid'
WHEN uuid_inventory_stock_location = 'b6f6cf2b-5e63-4693-a658-99748b871d7e' THEN
'Lahr'
WHEN uuid_inventory_stock_location = 'd9f25308-2907-460e-a8a4-8f9cea33051c' THEN
'Lodz'
WHEN uuid_inventory_stock_location = 'e52667dc-7511-45fc-98e4-b96f48bfa330' THEN
'Poznan'
WHEN uuid_inventory_stock_location = 'f4276462-6afc-4685-9471-86e6c1cb994b' THEN
'Berlin (IDC)'
ELSE uuid_inventory_stock_location
END AS warehouse,
count(distinct FCCS.shipment_number) as shipped_shipments,
count(distinct FCCS.shipment_number) filter (where FCCS.ts_customer_delivery IS NOT
NULL ) as delivered_shipments,
sum(OP.gmv_bef_return) as gmv_bef_return

/* information on orderpositions, parcel items, parcel*/


FROM dwh_confidential.f_salesorder_position OP
JOIN dwh_confidential.f_fos_shipment_order_items FFSOI
ON op.sk_order_position = FFSOI.sk_orderposition
JOIN dwh_confidential.f_salesorder_address OP_ADD
ON OP.SK_ORDER = OP_ADD.sk_order

LEFT JOIN hive.dwh_confidential.f_cot_carrier_shipments FCCS


ON FFSOI.sk_shipment_id = FCCS.sk_shipment_id
AND FCCS.sk_shipment_shipped_date >= 20230101

LEFT JOIN dwh_insider.d_destinations dst on FCCS.sk_destination =


dst.sk_destination
JOIN hive.dwh_insider.d_sales_channels SC
ON FCCS.sk_sales_channel = SC.sk_sales_channels

LEFT JOIN dwh_insider.d_delivery_products AS DP on FCCS.sk_delivery_product =


DP.sk_delivery_product
LEFT JOIN dwh_insider.d_delivery_services AS service ON dp.sk_delivery_service =
service.sk_delivery_service
LEFT JOIN dwh_insider.d_delivery_carriers CAR ON DP.sk_delivery_carrier =
CAR.sk_delivery_carrier

LEFT JOIN hive.dwh_insider.d_inventory_stock_location L ON


FFSOI.sk_stock_location_id = L.sk_inventory_stock_location
LEFT JOIN (Select * from dwh_confidential.v_f_customer_value_segments_holistic
where sk_valid_until=20301231) as clv
ON FFSOI.sk_customer = clv.sk_kunden

WHERE dst.country_code IN ('BE')


AND CAR.carrier_name IN ('BPO','GLS','DPD')
AND SC.cfa = 'zalando-fashion-store'
AND FFSOI.cancel_flag = 0
AND (FFSOI.is_zalando_item = 1 OR FFSOI.is_zfs_item = 1) --- ZALANDO FULFILLED

AND FCCS.ts_shipment_shipped BETWEEN TIMESTAMP '2023-01-01' and TIMESTAMP '2023-


12-31'
GROUP BY 1,2,3,4,5,6,7

)
,
all_parcels_final AS (
SELECT
p.year_month,
case_country,
p.dangerous_goods, -- added by gaurav
p.delivery_carrier_name, -- added by gaurav
SUBSTRING(shipping_zip,1,2) AS zipcode_region,
p.delivery_destination,
-- customer_segment,
p.holistic_value_segment,
p.warehouse,
o.shipped_shipments,
o.delivered_shipments,

COUNT(DISTINCT case_number) FILTER(WHERE is_parcel_missing_after_succ_delivery =


True) AS "#DNR cases",
COUNT(DISTINCT sk_customer) FILTER(WHERE is_parcel_missing_after_succ_delivery =
True) AS "#Customers impacted",
SUM(refund_amount) FILTER(WHERE (is_parcel_missing_after_succ_delivery = True)) AS
Total_refund_amount,
sum(p.gmv_bef_return) FILTER(WHERE (is_parcel_missing_after_succ_delivery = True))
as gmv_bef_return

FROM parcel_item_information as p
left join overall as o
on p.case_country = o.country_code
and SUBSTRING(p.shipping_zip,1,2) = o.zipcode
and p.delivery_carrier_name = o.carrier_name
and p.holistic_value_segment = o.holistic_value_segment
and p.delivery_destination = o.delivery_destination
and p.year_month = o.year_month
and p.warehouse = o.warehouse

WHERE case_country = 'BE'


GROUP BY 1,2,3,4,5,6,7,8,9,10 --added by gaurav
ORDER BY 1
)

SELECT *
FROM all_parcels_final

You might also like