0
我正面臨着這個問題,我需要根據相同的標準比較最近一行和最近一行(在這種情況下,這將是交易者 )。將最近一行與同一表中的最近一行進行比較
這裏是我的表:
ID Trader Price
-----------------
1 abc 5
2 xyz 5.2
3 abc 5.7
4 xyz 5
5 abc 5.2
6 abc 6
這裏是腳本
CREATE TABLE Sale
(
ID int not null PRIMARY KEY ,
trader varchar(10) NOT NULL,
price decimal(2,1),
)
INSERT INTO Sale (ID,trader, price)
VALUES (1, 'abc', 5), (2, 'xyz', 5.2),
(3, 'abc', 5.7), (4, 'xyz', 5),
(5, 'abc', 5.2), (6, 'abc', 6);
到目前爲止,我與這個解決方案是不完美的工作尚未
select
a.trader,
(a.price - b.price) New_price
from
sale a
join
sale b on a.trader = b.trader and a.id > b.ID
left outer join
sale c on a.trader = c.trader and a.id > c.ID and b.id < c.ID
where
c.ID is null
上面沒有完美,因爲我想只比較最近與前一個...在此示例中,例如
- 交易ABC:我只是比較ID = 6和id = 5
- 交易XYZ:ID = 4和id = 2
感謝您的幫助!
您正在使用哪個SQL Server版本? – dotnetom
我正在使用SQL 2014 – user32762
然後我提供的答案應該爲你工作 – dotnetom