Как каждый заказ будет размещен рядом с предыдущей датой заказа? - PullRequest
0 голосов
/ 18 декабря 2018

Привет, я начинающий в SQL Server.У меня есть таблица под названием продажи.

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

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Пожалуйста, попробуйте этот путь !!!!!

    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
0 голосов
/ 18 декабря 2018

попробуйте:

select o.*, prev.*
from Orders o
cross apply
 (
   select top 1 *
   from Orders P where P.OrderDate < O.OrderDate
   order by OrderDate DESC
 ) prev
...