2017-09-25 50 views
0

我想要實現的是將一個連接的排名索引添加到我的數據庫,然後可以連接到另一個表。以下是當前查詢結果。創建一個排名索引

select WorksOrderNumber, PartNumber, ScheduledFinishDate 
from vFM_WORKS_ORDER_HEADER 
where Complete = 'No' and ScheduledFinishDate is not null 

我想創建一個索引列包括基於scheduledFinishedDate僅針對該型號的零件編號+ ' - ' + a rank number(如果是有道理的)

WorksOrderNumber PartNumber ScheduledFinishDate Index 
28091    100767922 12/01/2018 00:00 100767922 - 2 
28300    100767922 09/10/2017 00:00 100767922 - 1 
28092    100767922 26/01/2018 00:00 100767922 - 3 
29166    T1043501  04/12/2017 00:00 T1043501 - 2 
29167    T1043501  25/01/2018 00:00 T1043501 - 3 
29168    T1043501  19/10/2017 00:00 T1043501 -1 

問候

+0

請您詳細說明爲什麼您正在削減'-2,-1' – TheGameiswar

+1

如果該值尚未計算並存儲在那裏,排名索引如何與另一個表連接?看起來排名應該是一個單獨的列,格式化爲應用程序代碼中的顯示目的。 –

+1

@TheGameiswar我認爲他們只是破折號被用作分隔符。 –

回答

1
SELECT 
    WorksOrderNumber, 
    PartNumber, 
    ScheduledFinishDate, 
    PartNumber + ' - ' + CONVERT(VARCHAR(10), rn) AS [Index] 
FROM 
(
    SELECT WorksOrderNumber, PartNumber, ScheduledFinishDate, 
     ROW_NUMBER() OVER (PARTITION BY PartNumber ORDER BY ScheduledFinishDate) rn 
    FROM yourTable 
)