0% found this document useful (0 votes)
65 views7 pages

Old Query Bpost

ssswswswsw

Uploaded by

Gaurav Rajan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views7 pages

Old Query Bpost

ssswswswsw

Uploaded by

Gaurav Rajan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy