используемой версии: Microsoft SQL Server Management Studio, SQL Server 2008Асимметричные колонны - собирание последнее данное значение
Я столкнулся разочарование проблема, которая вызвана асимметричными колоннами. В принципе, я хочу рассчитать влияние скидки на данные спотовые цены. Оба устанавливаются как индексы в той же таблицеpricevalues . Спот-цены указаны за 5 дней в неделю, а скидки указаны только в день их обновления. Так, например:
pricevalues (индексы цен и дохода, цена, pricedate)
PRICEINDEX PRICE PRICEDATE
-------------------- ------------------ ------------------
DISCOUNT_INDEX_ID | 15.5 | 2013-02-26
DISCOUNT_INDEX_ID | 10.5 | 2013-04-05
DISCOUNT_INDEX_ID | 16.0 | 2013-07-10
SPOT_INDEX_ID | 356.5 | 2013-07-22
SPOT_INDEX_ID | 355.0 | 2013-07-23
SPOT_INDEX_ID | 354.6 | 2013-07-24
SPOT_INDEX_ID | 357.0 | 2013-07-25
SPOT_INDEX_ID | 358.5 | 2013-07-26
Как бы мне лучше всего идти о вычислении разницы между ценой для SPOT_INDEX_ID и DISCOUNT_INDEX_ID на все даты, заданной SPOT_INDEX_ID, если необходимо использовать последнюю цену (по отношению к цене PRICEEDATE of spot price) PRICE?
Например, скидка на месте на 2013-07-22 это 16,0 (2013-07-10), в то время как скидка на пятно на 2013-05-15 это 10.5 (2013-04 -05) и скидка на месте на 2013-03-03 составляет 15,5 (2013-02-26)
Я только знаю, как это сделать, когда матч в PRICEDATE для обоих DISCOUNT_INDEX_ID и SPOT_INDEX_ID, так:
SELECT
(pv1.price - pv2.price) AS 'Total Price',
pv1.price AS 'Spot Price',
pv2.price AS 'Discount'
FROM
pricevalues pv1, pricevalues pv2
WHERE
pv1.priceindex = 'SPOT_INDEX_ID' AND
pv1.pricedate = pv2.pricedate AND
pv2.priceindex = 'DISCOUNT_INDEX_ID'
Это, конечно, невозможно, так как эти огромные пробелы i n индекс дисконта, поэтому, когда даты не совпадают, как мне получить значение последних данных скидка?
EDIT: Я хотел бы выход, чтобы выглядеть следующим образом:
PRICEDATE SPOT_INDEX DISCOUNT_INDEX SPOT_PRICE
---------------- ------------------- --------------------- ----------- --->>>
2013-07-26 | SPOT_INDEX_ID | DISCOUNT_INDEX_ID | 358.5 |
DISCOUNT_PRICE TOTAL_PRICE
---------------- -------------------
16.0 | 342.5 |
Не могли бы вы показать образец вывода, который хотите вернуть из этого запроса? Кроме того, существуют ли ежедневные записи для индекса пятна? –
Я добавил образец вывода. Новые записи добавляются к индексу пятна 5 дней недели (пн-пт). Записи со скидкой добавляются нерегулярно. – KHH