2017-09-25 44 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 
)