У меня есть таблица с столбцами Position_Date, Deal_Nr и рыночной стоимостью. Теперь я хочу создать четвертый столбец, который вычисляет Дельта рыночной стоимости между 2 днями на каждой сделке. Например, сделка № 100, МВ 14/9 = 500. МВ 13/9 = 600. 500-600 = -100 ...Запуск значения Delta на выделенных строках - SQL Server 2008
Я знаю, как это сделать, если я суммирую и группирую дату позиции, но есть способ рассчитать дельта, изолированную на каждой сделке, не делая случая и помещая deal_nr в качестве условия? У меня есть 100 различных deal_nr, и новые сделки придут, поэтому я хочу, чтобы запрос был статичным.
Position_date |Deal_Nr| Market Value | Delta Market Value
2016-09-14 | 100 | 500 | -100
2016-09-14 | 101 | 1000 | 200
2016-09-14 | 102 | 120 | -30
2016-09-14 | 103 | 400 | -40
2016-09-13 | 100 | 600 | -300
2016-09-13 | 101 | 800 | 100
2016-09-13 | 102 | 150 | -150
2016-09-13 | 103 | 440 | 240
2016-09-12 | 100 | 900 | N/A
2016-09-12 | 101 | 700 | N/A
2016-09-12 | 102 | 300 | N/A
2016-09-12 | 103 | 200 | N/A
Если бы я рассчитывал агрегированную дельта, сгруппированную по дате позиции, то следующие работы.
Select
Position_date,
Market_Value,
Delta_MV = sum(Market_value) - (select sum(Market_value) from t1
where position_Date = a.position_date -1
Group by position_date)
from t1 as a
Group by position_date
Не могли бы вы написать свой ожидаемый результат. я имею в виду то, что вы хотите показать –