数据如下所示:
ID | Date | Person | Status |
---|---|---|---|
1 | 01012020 | API | NEW |
1 | 02012020 | REMCO | OKAY |
1 | 03012020 | API | RECALC |
1 | 04012020 | RUUD | OKAY |
1 | 05012020 | API | RECALC |
1 | 06012020 | MICHAEL | OKAY EXTRA INFO |
1 | 07012020 | ROY | OKAY |
1 | 08012020 | ROY | OKAY |
我必须添加一行显示此ID的版本.当一个人而不是API处理ID时,版本加起来.
该序列应从1开始.
因此,结果应该如下所示:
ID | Date | Person | Status | VERSION |
---|---|---|---|---|
1 | 01012020 | API | NEW | 1 |
1 | 02012020 | REMCO | OKAY | 1 |
1 | 03012020 | API | RECALC | 2 |
1 | 04012020 | RUUD | OKAY | 2 |
1 | 05012020 | API | RECALC | 3 |
1 | 06012020 | MICHAEL | OKAY EXTRA INFO | 3 |
1 | 07012020 | ROY | OKAY | 4 |
1 | 08012020 | ROY | OKAY | 5 |
当然,您可以使用CTE或INTER JOIN.But I need this result to be in the SELECT statement.我试过这个:
SUM( case when STATUS IN ( 'NEW', 'RECALC') THEN 0
else 1 end)
over( partition by ID order by Date asc)
as VERSION
这几乎可以做到这一点,但当用户处理版本时会停止添加版本号.这是它不应该做的.
如果这不是很清楚的话,请问一下!
SUM( case when STATUS IN ( 'NEW', 'RECALC') THEN 0
else 1 end)
over( partition by ID order by Date asc)
as VERSION
当用户不断处理版本时,这会停止添加版本.它应该不断增加版本.
当一个人使用它时,它基本上需要添加一个版本号.所以一个人审核ID后的那一行应该加1,API不是人,其他人都是:)