如何在SQL Server中分配订单号

时间:2017-07-13 14:54:58

标签: sql-server

表:A

p_id | order | date
-----+-------+---------------
1    |  0    |   2014-01-12
1    |  1    |   2015-02-13

我想根据最新日期以desc顺序分配订单。

例如,如果我在2017-07-14收到相同p_id的记录,我想分配订单= 2

我该怎么做?

由于

1 个答案:

答案 0 :(得分:4)

您不需要存储订单,因为您的订单条件是日期

SELECT p_id, date FROM A ORDER BY date

如果您需要0,1,2等,那么

SELECT 
    p_id, date, 
    order = ROW_NUMBER() OVER (PARTITION BY p_id ORDER BY date)
FROM A 
ORDER BY date

否则,order可以是一个自动生成号码的标识列