У меня есть две таблицы в системе управления проектами с этапами, одна (упрощенная) таблица, содержащая идентификатор проекта и фактические даты ворот для каждого затвора, 1-5. В другом случае у меня есть исторический рекорд всех прогнозируемых данных; Прогнозируемый доход, прогнозируемая маржа, прогнозный год и т. Д. Каждый раз, когда прогноз обновляется, он записывает новые значения прогноза, отметку времени изменения и идентификатор проекта. Требование состоит в том, чтобы получить все метрические значения для последнего обновления до фактической даты затвора, записанной в первой таблице. Например, проект 100 имеет дату Gate 2 2014-12-18. Мне нужно получить самые последние значения до этой даты.MAX Дата серии до другой даты сгруппирована
ворот Дата Таблица:
ProjectID InternalGate2
--------- -------------
100 2014-12-18
2000 2013-01-15
Историческая Метрика Таблица:
ProjectID Metric MetricYear LastUpdated MetricValue
--------- ------ ---------- ----------- -----------
100 Sales 2015 2013-09-05 125000
100 Sales 2016 2013-09-05 230000
100 GM 2015 2013-09-05 .48
100 GM 2016 2013-09-05 .49
100 Sales 2015 2014-05-26 200000
100 Sales 2016 2014-05-26 300000
100 GM 2015 2014-05-26 .50
100 GM 2016 2014-05-26 .51
100 Sales 2015 2015-01-28 300000
100 Sales 2016 2015-01-28 400000
100 GM 2015 2015-01-28 .55
100 GM 2016 2015-01-28 .56
2000 Sales 2014 2012-11-23 200000
2000 Sales 2015 2012-11-23 300000
2000 Sales 2016 2012-11-23 310000
2000 GM 2014 2012-11-23 .75
2000 GM 2015 2012-11-23 .77
2000 GM 2016 2012-11-23 .77
2000 Sales 2015 2013-02-11 450000
2000 Sales 2016 2013-02-11 450000
2000 Sales 2017 2013-02-11 500000
2000 GM 2015 2013-02-11 .68
2000 GM 2016 2013-02-11 .69
2000 GM 2017 2013-02-11 .70
В этом примере набор результатов будет четыре строки для проекта 100 с LastUpdated Датой 2014-05-26 поскольку это было последнее обновление до 2014-12-18 годов, а первые шесть строк данных для Project 2000 обновлены 2012-11-23.
Любое руководство будет принята с благодарностью.
Благодарим за быстрый ответ! Кажется, он работает. Теперь я пытаюсь оптимизировать запрос, так как занимает около часа, чтобы вернуть набор результатов. Я думаю, что если я уменьшу начальное выражение таблицы до различных значений LastUpdate, это значительно поможет. Каждый раз, когда прогноз обновляется, добавляется примерно 120 метрик (строк) с одинаковой маркой LastUpdate. Если я ограничу начальную нагрузку на разные даты, я уверен, что она будет намного меньше ударов по функции MAX. – scottM