Цель : я пытаюсь получить последнюю версию каждого "модуля" (например, API, Angular Site, Admin, et c) для производства и выпуска (на основном и dr-сервере). ) из базы данных, в которой есть записи для развертываний
Проблема : мой запрос, похоже, возвращает самые последние для всех, кроме одного конкретного модуля. Он возвращает последние в рабочем состоянии (версия 46.14) для всех, кроме этот один модуль (который возвращает версию 45.7)
Я занимался этим часами
Что я пробовал :
I Я пытался изменить порядок в Группе по, а также в Заказе по
Я пытался удалить элементы из группы по и по порядку по
Я пытался начать с наименьшего часть запроса и добавление по частям с нуля
Я просмотрел информацию о максимуме, группировке и порядке по
Кажется, вернется верная версия, когда я не есть поле Местоположение. Тем не менее, Location является новым необходимым полем, поэтому я не могу избавиться от этого.
Я не уверен, в каком направлении go на данный момент?
Ключ :
Env = Окружающая среда (например, Prod или Rel) Расположение (Main или DR) Ver = версия (например, 45.7 или 46.14)
Использование SQL Сервер
SQL:
select m.Name as Module, l.Name as Location, e.Name as Env, v.Name as Ver, CONVERT(NVARCHAR(16), d.OccurredOn, 120)
from deployment d
inner join module m on d.ModuleID = m.ID
inner join Location l on d.LocationID = l.ID
inner join Environment e on d.EnvironmentID = e.ID
inner join versionset v on d.VersionSetID = v.ID
where d.ID in (
select max(d.ID)
from deployment d
inner join module m on d.moduleID = m.ID
where d.OccurredOn > '2019-01-01' and m.SuiteID = 3 and m.ID <> 12 and m.ID <> 19 AND d.EnvironmentID <> 4
group by d.LocationID, d.EnvironmentID, d.ModuleID
)
order by d.LocationID, d.EnvironmentID, d.ModuleID