Я пытаюсь решить эту проблему, где у меня есть две таблицы: 1) планирование - sku, склад, target_week, snapshot_week, projected_value. 2) actual_shipment - sku, inventory, target_week, shipped_quantity.
Краткое описание: target_week - это дата, когда запланированная отгрузка должна быть доставлена, а snapshot_week - это дата создания графика планирования, а projected_value - отгрузка значение, запланированное на эту target_week для данной комбинации sku x склад. shipped_quantity - это фактическая стоимость доставки, которая была доставлена. Target_week и snapshot_week - это воскресная дата недели
Итак, моя постановка проблемы заключается в том, что я должен сравнить фактическое и прогнозируемое значение для каждого sku, складскую комбинацию для указанного c target_week и показать прогнозируемое значение, которое было запланировано на эту target_week, вернувшись на 4 недели a go, 8 недель a go, 12 недель a go et c с использованием переменной snapshot_week.
Я сделал левое соединение между двумя взяв actual_shipment в качестве базовой таблицы.
with values as
(select * from
(
(select * from planning) a
left join
(select * from actual_shipment) b on a.sku = b.sku and a.warehouse = b.warehouse and a.target_week = b.target_week
)
select *,
CASE WHEN snapshot_week = DATE_ADD(CAST(target_week AS DATE), INTERVAL -4 WEEK) THEN projected_value END AS Proj_Quant_4weeksago,
CASE WHEN snapshot_week = DATE_ADD(CAST(target_week AS DATE), INTERVAL -8 WEEK) THEN projected_value END AS Proj_Quant_8weeksago
.......
и так далее в течение 16 недель.
мой результат должен быть следующим: sku - склад - target_week - shipped_quantity - projected_Quant_4weeksa go - projected_Quant_8weeksa go ...... так далее
, но моя проблема в этом запросе, я не могу получить прогнозируемые значения за все недели (и показаны как NULL), что I go отстает от target_week по отношению к snapshot_week, даже если значения присутствуют в таблице планирования.
Кто-нибудь может угодить ему lp где я делаю не так? Я пытаюсь устранить его через 3 дня.
Спасибо !!