版本中使用:Microsoft SQL Server管理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給出的所有日期價格對SPOT_INDEX_ID和DISCOUNT_INDEX_ID之間的區別,如果最新給出的(相對於現貨價格的PRICEDATE)折扣PRICE是要使用的嗎?
例如,在2013年7月22日上的光點的折扣是16.0(2013年7月10日),而關於2013年5月15日的光斑的折扣是10.5(2013-04 -05),以及關於2013年3月3日的點的折扣是15.5(2013年2月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'
這當然不可能這些巨大的差距我n的折扣指數,所以當日期不匹配時,我該如何取得最新折扣價的?
編輯:我想輸出到如下所示:
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