Я посмотрел другие ответы на этот вопрос, но не нашел решения.
У меня есть две таблицы с номером отслеживания, одна имеет историю состояния и несколько записей на отслеживание с разными датами времени для каждый статус. Другая таблица представляет собой таблицу затрат, которая имеет одну запись для отслеживания с датой, которая находится в том же общем периоде времени таблицы состояния, но никогда не является точной.
Я не могу присоединиться только к самому номеру отслеживания из-за дублирования номера отслеживания в данных за предыдущие месяцы. Ex. номер для отслеживания может появиться в марте 2019 года, а затем в январе 2020 года, даже если отправка отправления будет очень разной. Однако, если вы объедините отслеживание с orderid в таблице состояния, вы получите уникальное значение. Однако этот номер orderid отсутствует в таблице затрат, поэтому вы не можете объединить две таблицы с этим значением. Это должно быть отслеживание и какой-то диапазон дат.
Итак, я собираюсь объединить две таблицы, используя номер отслеживания и диапазон дат + - 30 дней с даты, указанной в таблице затрат, и окончательной даты для этого номера отслеживания в таблице состояния.
Итак, что-то вроде этого без части "находится в окне 30 дней".
SELECT C.cost
, S.trackingnumber
From UPSCost C
join UPSStatus S
ON C.trackingnumber = S.trackingnumber
WHERE MAX(S.date_time) is in a 30 day window of C.event_date_time