Sql server 如何将每个订单放置在其上一个订单日期的旁边?

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 |

大家好,我是sql Server的begginer。我有一张叫作销售的桌子

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

到目前为止你做了什么?到目前为止你做了什么?