Advertisement
Guest User

Untitled

a guest
Mar 18th, 2022
417
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 6.12 KB | None | 0 0
  1. WITH DELAY_ID_TL AS (
  2.  
  3.    WITH SHP AS (
  4.  
  5.       SELECT DISTINCT
  6.  
  7.       SHP_SHIPMENT_ID,
  8.       SHP_PICKING_TYPE_ID,
  9.       SHP_LOGISTIC_CENTER_ID,
  10.       SHP_DATE_FIRST_VISIT_ID,
  11.       SHP_DATETIME_DELIVERED_ID
  12.  
  13.       FROM WHOWNER.BT_SHP_SHIPMENTS
  14.  
  15.       WHERE      CAST(SHP_DATE_FIRST_VISIT_ID AS DATE) >= '2022-03-17'
  16.                AND CAST(SHP_DATE_FIRST_VISIT_ID AS DATE) <= '2022-03-17'
  17.              AND SHP_STATUS_ID = 'delivered'  
  18.              AND SIT_SITE_ID = 'MLB'
  19.              AND SHP_SHIPPING_MODE_ID = 'me2'
  20.              
  21.     )
  22.  
  23.  
  24.     SELECT DISTINCT
  25.  
  26.     A.SHP_SHIPMENT_ID AS ID_PACOTE,
  27.     D.TMS_SELLER_INFO_NAME AS SELLER,
  28.     C.SHP_PICKING_TYPE_ID AS TIPO_PICKING,
  29.     C.SHP_LOGISTIC_CENTER_ID AS ORIGEM,
  30.     A.SHP_LG_FACILITY_ID AS DESTINO,
  31.     RO.SHP_LG_ORIGIN_CODE AS XPT,
  32.  
  33.     CASE WHEN CAST(C.SHP_DATE_FIRST_VISIT_ID AS DATE) < CAST(B.EST_DELIVERY_DATE AS DATE) THEN 'EARLY'
  34.          WHEN CAST(C.SHP_DATE_FIRST_VISIT_ID AS DATE) > CAST((CASE WHEN B.EST_DELIVERY_OFFSET_DATE IS NULL THEN DATETIME_ADD(B.EST_DELIVERY_DATE, INTERVAL '21' HOUR) ELSE DATETIME_ADD(B.EST_DELIVERY_OFFSET_DATE, INTERVAL '21' HOUR) END) AS DATE) THEN 'DELAY'
  35.          ELSE 'ON_TIME'
  36.     END AS STATUS_LT,
  37.  
  38.     DATETIME_ADD(B.EST_DELIVERY_DATE, INTERVAL '1' HOUR) AS PROMESSA_INICIAL,
  39.     DATETIME_ADD(B.EST_DELIVERY_OFFSET_DATE, INTERVAL '1' HOUR) AS PROMESSA_FINAL,
  40.     CASE WHEN B.EST_DELIVERY_OFFSET_DATE IS NULL THEN DATETIME_ADD(B.EST_DELIVERY_DATE, INTERVAL '21' HOUR) ELSE DATETIME_ADD(B.EST_DELIVERY_OFFSET_DATE, INTERVAL '21' HOUR) END AS PROMESSA,
  41.  
  42.     MIN(CASE WHEN A.SHP_LG_STATUS = 'ready_to_print'  THEN DATETIME_ADD(CAST(A.SHP_LG_SHIPMENT_CHK_DT AS DATETIME), INTERVAL '1' HOUR)  END) AS A_ETIQUETAR,
  43.     MIN(CASE WHEN A.SHP_LG_STATUS = 'for_pickup'      THEN DATETIME_ADD(CAST(A.SHP_LG_SHIPMENT_CHK_DT AS DATETIME), INTERVAL '1' HOUR)  END) AS PRONTO_PARA_COLETA,
  44.     MIN(CASE WHEN A.SHP_LG_STATUS = 'picked_up'       THEN DATETIME_ADD(CAST(A.SHP_LG_SHIPMENT_CHK_DT AS DATETIME), INTERVAL '1' HOUR)  END) AS COLETADO,
  45.     MIN(CASE WHEN A.SHP_LG_STATUS = 'on_hub'          THEN DATETIME_ADD(CAST(A.SHP_LG_SHIPMENT_CHK_DT AS DATETIME), INTERVAL '1' HOUR)  END) AS EM_DEPOSITO,
  46.     MIN(CASE WHEN A.SHP_LG_STATUS = 'on_way'          THEN DATETIME_ADD(CAST(A.SHP_LG_SHIPMENT_CHK_DT AS DATETIME), INTERVAL '1' HOUR)  END) AS CAMINHO_PARA_ESTACAO,
  47.     MIN(CASE WHEN A.SHP_LG_STATUS = 'at_station'      AND A.SHP_LG_SUB_STATUS ='sorting' THEN DATETIME_ADD(CAST(A.SHP_LG_SHIPMENT_CHK_DT AS DATETIME), INTERVAL '1' HOUR)  END) AS ENTROU_NA_ESTACAO,
  48.  
  49.     DATETIME_ADD(C.SHP_DATE_FIRST_VISIT_ID,   INTERVAL '1' HOUR) AS PRIMEIRA_VISITA,
  50.     DATETIME_ADD(C.SHP_DATETIME_DELIVERED_ID, INTERVAL '1' HOUR) AS DATA_ENTREGA,
  51.  
  52.     FROM WHOWNER.BT_SHP_LG_SHIPMENT_CHECKPOINTS A
  53.       INNER JOIN WHOWNER.LK_SHP_ORIGINAL_PROMISE B ON B.SHP_SHIPMENT_ID = A.SHP_SHIPMENT_ID
  54.       INNER JOIN SHP C ON C.SHP_SHIPMENT_ID = A.SHP_SHIPMENT_ID
  55.       INNER JOIN WHOWNER.BT_TMS_TRACKING D ON D.SHP_SHIPMENT_ID = A.SHP_SHIPMENT_ID
  56.  
  57.       RIGHT JOIN WHOWNER.BT_SHP_LG_SHIPMENTS_ROUTES logs ON A.shp_shipment_id = logs.shp_shipment_id
  58.       INNER JOIN WHOWNER.LK_SHP_COMPANIES comp ON comp.SHP_company_ID = logs.shp_company_ID
  59.       INNER JOIN WHOWNER.LK_SHP_LG_ROUTES XPT ON XPT.shp_lg_route_id = logs.shp_lg_route_id
  60.       LEFT JOIN WHOWNER.LK_SHP_LG_RTG_ROUTE RR ON RR.SHP_LG_ROUTE_ID = XPT.SHP_LG_PLANNED_ROUTE
  61.       LEFT JOIN WHOWNER.LK_SHP_LG_RTG_ORDER RO ON RO.SHP_LG_ORDER_ID = RR.SHP_LG_ROUTING_ORDER_ID
  62.  
  63.      WHERE A.SHP_LG_FACILITY_ID IN ('SMS1')
  64.  
  65.    GROUP BY 1,2,3,4,5,6,7,8,9,16,17)
  66.  
  67.  
  68. SELECT DISTINCT
  69.  
  70.   ID_PACOTE,
  71.  
  72.   CASE
  73.     WHEN TIPO_PICKING = 'fulfillment'   THEN 'FBM'
  74.     WHEN TIPO_PICKING = 'cross_docking' THEN 'XD'
  75.     WHEN TIPO_PICKING = 'xd_drop_off'   THEN 'XD'
  76.  
  77.   END AS TIPO_PICKING,
  78.  
  79.   CASE
  80.     WHEN DESTINO = 'SMG1'   THEN 'MG'
  81.     WHEN DESTINO = 'SMG6'   THEN 'MG'
  82.     WHEN DESTINO = 'SMG12'  THEN 'MG'
  83.     WHEN DESTINO = 'SMG4'   THEN 'MGI'
  84.     WHEN DESTINO = 'SMG7'   THEN 'MGI'
  85.     WHEN DESTINO = 'SMG8'   THEN 'MGI'
  86.     WHEN DESTINO = 'SMG13'  THEN 'MGI'
  87.     WHEN DESTINO = 'SMG2'   THEN 'MGII'
  88.     WHEN DESTINO = 'SMG3'   THEN 'MGII'
  89.     WHEN DESTINO = 'SMG5'   THEN 'MGII'
  90.     WHEN DESTINO = 'SMG9'   THEN 'MGII'
  91.  
  92.    
  93.   END AS REGIONAL,
  94.  
  95.   ORIGEM,
  96.   DESTINO,
  97.   STATUS_LT,
  98.   PROMESSA_INICIAL,
  99.   PROMESSA_FINAL,
  100.   PROMESSA,
  101.   A_ETIQUETAR,
  102.   PRONTO_PARA_COLETA,
  103.   COLETADO,
  104.   EM_DEPOSITO,
  105.   CAMINHO_PARA_ESTACAO,
  106.   ENTROU_NA_ESTACAO,
  107.   PRIMEIRA_VISITA,
  108.   DATA_ENTREGA,
  109.  
  110.   CASE WHEN STATUS_LT = 'DELAY'  AND CAST(PRONTO_PARA_COLETA AS DATE) >= CAST(PROMESSA AS DATE)   THEN 'No Seller'
  111.        WHEN STATUS_LT = 'DELAY'  AND PRONTO_PARA_COLETA > COLETADO                                THEN 'No Seller'
  112.        WHEN STATUS_LT = 'DELAY'  AND CAST(COLETADO AS DATE) >= CAST(PROMESSA AS DATE)             THEN 'Na Coleta'
  113.        WHEN STATUS_LT = 'DELAY'  AND CAST(EM_DEPOSITO AS DATE) > CAST(COLETADO AS DATE)           THEN 'V3 / v4'
  114.        WHEN STATUS_LT = 'DELAY'  AND CAST(CAMINHO_PARA_ESTACAO AS DATE) > CAST(PROMESSA AS DATE)  THEN 'XD / FBM'
  115.        WHEN STATUS_LT = 'DELAY'  AND CAST(ENTROU_NA_ESTACAO AS DATE) > CAST(PROMESSA AS DATE)     THEN 'Caminho p/ Estacao'
  116.        WHEN STATUS_LT = 'DELAY'  AND CAST(PRIMEIRA_VISITA AS DATE) > CAST(PROMESSA AS DATE)       THEN 'SVC'
  117.   END AS STATUS_DELAY,
  118.  
  119.   CASE WHEN CAST(PRONTO_PARA_COLETA AS DATE) = CAST(COLETADO AS DATE)                            THEN 'D'
  120.        WHEN DATE_ADD(CAST(PRONTO_PARA_COLETA AS DATE), INTERVAL 1 DAY) = CAST(COLETADO AS DATE)  THEN 'D+1'
  121.        WHEN DATE_ADD(CAST(PRONTO_PARA_COLETA AS DATE), INTERVAL 2 DAY) = CAST(COLETADO AS DATE)  THEN 'D+2'
  122.        WHEN DATE_ADD(CAST(PRONTO_PARA_COLETA AS DATE), INTERVAL 3 DAY) = CAST(COLETADO AS DATE)  THEN 'D+3'
  123.        WHEN CAST(COLETADO AS DATE) > DATE_ADD(CAST(PRONTO_PARA_COLETA AS DATE), INTERVAL 3 DAY)  THEN '> D+3'
  124.          ELSE "S/ Coleta"
  125.   END AS COLETA_DIAS,
  126.  
  127.   -- CASE WHEN STATUS_LT = 'DELAY'    THEN 1  ELSE 0 END AS DELAY,
  128.   -- CASE WHEN STATUS_LT = 'ON_TIME'  THEN 1  ELSE 0 END AS ON_TIME,
  129.   -- CASE WHEN STATUS_LT = 'EARLY'    THEN 1  ELSE 0 END AS EARLY,
  130.  
  131. FROM DELAY_ID_TL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement