问题:如何分配诸如CC=1和WP=2之类的代码并使查询的这一部分获得所需的结果?如果在同一交易日期有多个交易,则应用业务规则。
这是我对Oracle 11g的查询
select tid,
cycle,
apply_no,
seq_no,
trans_date,
trans_type,
priority
from ( select tid,
cycle,
apply_no,
seq_no,
trans_date,
trans_type,
rank() over (partition by tid,
order by trans_date desc,seq_no desc) priority
from transactions where tid=1
当前结果
TID cycle apply_no seq_no trans_date trans_type priority
----------------------------------------------------------------
1 201420 2 2 27-NOV-12 WP 1
1 201320 1 1 27-NOV-12 CC 2
1 201420 2 1 16-OCT-12 CC 3
期望的结果
TID cycle apply_no seq_no trans_date trans_type priority
---------------------------------------------------------------
1 201420 2 2 27-NOV-12 CC 1
1 201320 1 1 27-NOV-12 WP 2
1 201420 2 1 16-OCT-12 CC 3
原因:如果 trans_date 相同,则业务规则状态 CC 优先于 WP(不是因为 CC 在 WP 之前排序)。