Регистр для возврата значения с двумя условиями - PullRequest
0 голосов
/ 30 октября 2019

Мне нужно вернуть начальное значение AAALTLCHANGEREASON, когда AAALTLCHANGEVALUE равно «Ручная скорость». Таким образом, в этом примере мне нужно вернуть «Необходим класс».

AAALTLCHANGEVALUE   AAALTLCHANGEREASON         CREATEDDATETIME     
ManualCoded              New Customer           09/17/2019          
Manual Rate              Class needed           09/18/2019
CWI Inspection           Reweigh                09/19/2019
Manual Rate              Insurance Added        09/20/2019

Я пробовал это выражение безуспешно:

case

when  [AAALTLCHANGEVALUE] = 'manual rate' then[AAALTLCHANGEREASON]
when  [AAALTLCHANGEVALUE] = 'manual rate' then MIN[CREATEDDATETIME]

else null

end

Спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 30 октября 2019

Сначала вы выбираете все 'Manual Rate', а затем убедитесь, что никто не находится раньше этой строки.

SQL DEMO

 SELECT AAALTLCHANGEREASON
 FROM YourTable t1
 WHERE AAALTLCHANGEVALUE = 'Manual Rate'
   AND NOT EXISTS (SELECT 1
                   FROM YourTable t2
                   WHERE t2.CREATEDDATETIME < t1.CREATEDDATETIME
                     AND AAALTLCHANGEVALUE = 'Manual Rate')
0 голосов
/ 30 октября 2019

Вы можете использовать top и order by:

select TOP AAALTLCHANGEREASON
from t
where AAALTLCHANGEVALUE = 'manual rate'
order by CREATEDDATETIME;
...