2017-02-23 6 views
0

Как получить разницу в значении конкретного столбца для конкретной даты для значения для того же столбца для предыдущей даты?SQL, чтобы получить разницу в стоимости для одного и того же столбца, но для разных дат в пределах одной таблицы

Current Table: 
Date   Qty 
8-Jan-17  100 
9-Jan-17  120 
10-Jan-17  180 

Desired Output: 

Date   Diff Qty 
9-Jan-17  20 
10-Jan-17  60 
+0

Wich СУБД вы используете именно? У вас есть столбец идентификационной информации? Ваши даты всегда подряд? нет повторения или отсутствия дня? – Horaciux

ответ

0

Это будет работать, если даты не повторяются, и между ними нет пробелов.

--Sample data as provided. This script works in SQL Server 2005+ 
    CREATE TABLE #Table1 
     ([Date] datetime, [Qty] int) 
    ; 

    INSERT INTO #Table1 
     ([Date], [Qty]) 
    VALUES 
     ('2017-01-08 00:00:00', 100), 
     ('2017-01-09 00:00:00', 120), 
     ('2017-01-10 00:00:00', 180) 
    ; 

    --This script is plain SQL for any DMBS 

    select y.Date, y.Qty-x.Qty as 'Diff Qty' 
    from #table1 x inner join #Table1 y 
    on x.Date+1=y.Date 

Результат

+-------------------------+----------+ 
|   Date   | Diff Qty | 
+-------------------------+----------+ 
| 2017-01-09 00:00:00.000 |  20 | 
| 2017-01-10 00:00:00.000 |  60 | 
+-------------------------+----------+ 
Смежные вопросы