Как я могу вернуть число в зависимости от начала и завершения фазы для каждой группы? - PullRequest
1 голос
/ 04 июня 2019

У меня есть проекты с запусками и завершениями для нескольких этапов.Мне нравится, что запрос возвращает номер текущей фазы, в которой находится проект, исходя из даты начала, но без даты завершения.Если все этапы завершены (все имеют даты завершения), он должен вернуться 4. Другое предположение - все этапы должны быть завершены в порядке, начиная с этапа 1.

PRJ   Start1   Complete1   Start2    Complete2   Start3    Complete3
A    3/1/2019  3/5/2019   3/6/2019   3/9/2019   3/9/2019
B    2/2/2019
C    4/1/2019  4/2/2019   4/13/2019
D    3/2/2019  4/5/2019   4/6/2019   4/7/2019   5/9/2019   6/20/2019

Desired:
PRJ   Current_Phase
A           3
B           1
C           2
D           4

Я не уверен, как начать.

Заранее спасибо !!!

1 Ответ

3 голосов
/ 04 июня 2019

Вы хотите первое null значение. Используйте switch():

select t.*,
       switch(complete1 is null, 1,
              complete2 is null, 2,
              complete3 is null, 3,
              1=1, 4
             ) as current_phase
from t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...