我試圖返回狀態列表中的「最大」值。但是,我想爲字符串值指定一個排序值,以便通過我自己的排名返回最大值,而不是按字母順序排列。SQL使用查找來返回組中的最大值?
這裏是我的代碼:
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的頂部按字母順序排列的結果,我得到了這個秩序的最先進的地位。
- '接收的供應商'
- '確認書SENT'
- 'IC PENDING'
- 'CONFIRMATION RECEIVED'
- '已取消'
爲了澄清,我正在尋找在x中的每個wbs1,wbs2,wbs3分組內的排名最高的狀態。 –