案例表达式返回两个条件的值

时间:2019-10-30 15:15:49

标签: sql sql-server data-warehouse

当AAALTLCHANGEVALUE等于“ Manual Rate”时,我需要返回初始AAALTLCHANGEREASON值。因此,在此示例中,我需要返回“需要的类”。

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 个答案:

答案 0 :(得分:1)

首先选择所有'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')

答案 1 :(得分:0)

您可以使用toporder by

select TOP AAALTLCHANGEREASON
from t
where AAALTLCHANGEVALUE = 'manual rate'
order by CREATEDDATETIME;
相关问题