我的项目有多个阶段的开始和完成。我喜欢基于具有开始日期但没有完成日期的查询来返回项目当前所在的当前阶段号。如果所有阶段都已完成(都有完成日期),则应返回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
我不确定如何开始。
提前致谢!!!
您想要第一个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;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句