Operations & Supply Chain Analytics · Mission 10 of 30Easy

Late shipments this quarter

WHERE filter combining date scope and inequality.

The Brief

Maya ChenOps Directorslack-dm

Pull every late shipment this quarter (Q2 2026 — April so far). Late = `actual_arrival > expected_arrival`. Skip in-flight (NULL actual_arrival) and cancelled. Return po_number, supplier_name, expected_arrival, actual_arrival, and how many days late. Sort by days_late DESC.

You'll practice

Date scopeInequality filter

Tables & columns available

fact_purchase_ordersfact12 columns
ColumnTypeKey
po_idINTPK
po_numberTEXT
sku_idINTFK → dim_skus
supplier_idINTFK → dim_suppliers
warehouse_idINTFK → dim_warehouses
order_dateTEXT
expected_arrivalTEXT
actual_arrivalTEXT
qty_orderedINT
qty_receivedINT
unit_costREAL
statusTEXT
dim_suppliersdim6 columns
ColumnTypeKey
supplier_idINTPK
supplier_nameTEXT
countryTEXT
lead_time_target_daysINT
on_time_target_pctREAL
is_activeINT

Hints (3)

Each hint you reveal reduces the XP you can earn. Try the query first.

Hint 1

JOIN `fact_purchase_orders` to `dim_suppliers`. Filter `status = 'received'` AND `order_date BETWEEN '2026-04-01' AND '2026-04-30'`.

Hint 2

Late filter: `actual_arrival > expected_arrival`.

Hint 3

days_late = `actual_arrival::date - expected_arrival::date` (Postgres returns an INTEGER number of days). The SQLite equivalent is `julianday(actual_arrival) - julianday(expected_arrival)`.