Sql server 如何将每个订单放置在其上一个订单日期的旁边?
大家好,我是sql Server的begginer。我有一张叫作销售的桌子Sql server 如何将每个订单放置在其上一个订单日期的旁边?,sql-server,sql-server-2012,Sql Server,Sql Server 2012,大家好,我是sql Server的begginer。我有一张叫作销售的桌子 OrderID | OrderDate | CustomerName --------|-----------|------------ 1 | 01-20-2000| Joe --------|-----------|------------ 2 | 01-19-2000|Rabert --------|-----------|------------ 3 |01-17-2000 |
OrderID | OrderDate | CustomerName
--------|-----------|------------
1 | 01-20-2000| Joe
--------|-----------|------------
2 | 01-19-2000|Rabert
--------|-----------|------------
3 |01-17-2000 |Alice
--------|-----------|------------
4 | 01-16-2000| Tome
--------|-----------|------------
5 | 01-15-2000|James
--------|-----------|------------
6 |01-10-2000 |Fred
--------|-----------|------------
7 | 01-09-2000| Luie
--------|-----------|------------
8 | 01-03-2000|Sara
--------|-----------|------------
9 |01-02-2000 |Nik
--------|-----------|------------
我希望每个订单将放置在其前一天的订单旁边
例如:
OrderID OrderDate CusromerName OrderID OrderDate CusromerDate
1 2000 - 01 - 20 Joe 2 2000 - 01 - 19 Robert
2 2000 - 01 - 19 Robert 3 2000 - 01 - 17 Alice
3 2000 - 01 - 17 Alice 4 2000 - 01 - 16 Tom
4 2000 - 01 - 16 Tom 5 2000 - 01 - 15 James
5 2000 - 01 - 15 James 6 2000 - 01 - 10 Fred
6 2000 - 01 - 10 Fred 7 2000 - 01 - 09 Luie
7 2000 - 01 - 09 Luie 8 2000 - 01 - 03 Sara
8 2000 - 01 - 03 Sara 9 2000 - 01 - 02 Nik
试试看:
select o.*, prev.*
from Orders o
cross apply
(
select top 1 *
from Orders P where P.OrderDate < O.OrderDate
order by OrderDate DESC
) prev
试试看:
select o.*, prev.*
from Orders o
cross apply
(
select top 1 *
from Orders P where P.OrderDate < O.OrderDate
order by OrderDate DESC
) prev
请试试这条路
select t1.*,
lead(OrderID)over( order by OrderDate desc) as OrderID,
lead(OrderDate)over( order by OrderDate desc) as OrderDate,
lead(CustomerName)over( order by OrderDate desc) as CustomerName from #tt t1
请试试这条路
select t1.*,
lead(OrderID)over( order by OrderDate desc) as OrderID,
lead(OrderDate)over( order by OrderDate desc) as OrderDate,
lead(CustomerName)over( order by OrderDate desc) as CustomerName from #tt t1
到目前为止你做了什么?到目前为止你做了什么?