推 gundan:謝謝啦! 05/14 18:25
※ 引述《gundan (彈彈的哀傷)》之銘言:
: 我有個table 想要另外做成一張view
: table內容有點像股票
: ex.
: date price
: 20130430 20
: 20130502 21
: 20130503 21
: 20130506 20.5
: 20130507 22
: 我想要做出一個view裡面包含每日漲跌的
: 請問這樣的sql語法要如何寫?
: 謝謝
: date price change
: 20130430 20
: 20130502 21 1
: 20130503 21 0
: 20130506 20.5 -0.5
: 20130507 22 1.5
這是在不考慮效能的前提下寫的...
select x.*,x.price-isnull(y.price,x.price) as change from
(select ROW_NUMBER() OVER (ORDER BY date asc) AS sn_x,* from
test3 ) as x left join
(select ROW_NUMBER() OVER (ORDER BY date asc) AS sn_y,* from
test3 ) as y on x.sn_x=y.sn_y+1
主要是先建立流水號,再透過另一張表的流水號+1做join ,再相減就是你要的結果了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 192.192.105.5