作者greetmuta (愚零斗武多)
看板Database
标题Re: [SQL ] 对前一笔资料做计算
时间Tue May 14 12:46:08 2013
※ 引述《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
1F:推 gundan:谢谢啦! 05/14 18:25