ステータスのリストで「最大」値を返そうとしています。ただし、アルファベット順ではなく、自分のランキングによって最大値が返されるように、文字列値に並べ替え値を割り当てたいと思います。
これが私のコードです:
select x.wbs1, x.wbs2, x.wbs3, x.custstatus
from (
select wbs1,wbs2,wbs3,custstatus=MAX(custstatus)
from Projects_CRStatus
where custsentdate >= 'June 1, 2001' AND custsentdate <= 'June 30, 2013'
AND CustStatus IN ('RECEIVED AT VENDOR', 'CONFIRMATION SENT',
'IC PENDING','CONFIRMATION RECEIVED','CANCELLED')
group by wbs1,wbs2,wbs3 ) x
inner join (
select wbs1,wbs2,wbs3,custsentdate=max(custsentdate)
from Projects_CRStatus
group by wbs1,wbs2,wbs3) y
on (x.wbs1=y.wbs1 and x.wbs2=y.wbs2 and x.wbs3=y.wbs3)
ORDER BY CustEnrollmentID
私がやりたいのは、CustStatus の値をランク付けして、CustStatus の上位のアルファベット順の結果を返すのではなく、この順序で最も高度なステータスを取得することです。
- 「ベンダーで受け取りました」
- 「確認を送信しました」
- 「IC保留中」
- 「確認を受け取りました」
- 'キャンセル'