【发布时间】:2020-01-07 19:04:51
【问题描述】:
我编写了一个代码,用于检索客户下订单的详细信息并返回下订单的日期。
USE[tsql2012];
WITH CTE_1
AS
(
select
[ID] = customers.custid
,[Name] = contactname
,[OrderID] = orders.orderid
,[Order Date] = orderdate
,[Date] = format(orderdate,'MMMM-yy')
from sales.orders
left join sales.OrderDetails on OrderDetails.orderid = orders.orderid
left join sales.Customers on orders.custid = customers.custid
)
select
[ID]
,[Name]
,[OrderID]
,[Date]
,[Rank] = DENSE_RANK() OVER (PARTITION BY [DATE] ORDER BY [ORDERID])
FROM CTE_1
这是我得到的代码
ID NAME ORDERID DATE RANK
10 Bassols, Pilar Colome 10492 April-07 1
10 Bassols, Pilar Colome 10493 April-07 1
如何检查Rank 列是否包含多个相同排名编号的实例,因此如果在同一天下了两个订单,它应该像这样更改日期列:
ID NAME ORDERID DATE RANK
10 Bassols, Pilar Colome 10492 April-07(1) 1
10 Bassols, Pilar Colome 10493 April-07(2) 1
【问题讨论】: