把五格的資料平均後寫在一個儲存格中(股票的五日均線)
暱稱: joey0415
中學生
- 帖子
- 361
- 主題
- 57
- 精華
- 0
- 積分
- 426
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- 2003,2010
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2010-5-13
- 最後登錄
- 2022-12-8
|
把五格的資料平均後寫在一個儲存格中(股票的五日均線)
本帖最後由 joey0415 於 2010-6-21 08:26 編輯

如上表,小弟會把SQL_2008中的資料,撈出資料放在EXCEL中,並用EXCEL中計算收盤價的五日均線,聽朋友說,可以直接在SQL_2008 中,直接算出五日均線,請問一下,若在資料庫中計算的話,請問語法為何呢?
如果不行的話,若把資料撈出來在EXCEL中計算後,再放回資料庫中存放,這樣好嗎? |
|
|
|
|
|
|
- 帖子
- 1180
- 主題
- 204
- 精華
- 0
- 積分
- 1051
- 點名
- 0
- 作業系統
- Mac.OS10.6
- 軟體版本
- Office 2003
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2012-9-19
     
|
2#
發表於 2010-6-28 11:40
| 只看該作者
回復 1# joey0415
GOOGLE回覆
http://www.mobile01.com/topicdetail.php?f=512&t=1611893&last=20372916
1. 用 Select MAX(日期) from STOCK_AAA
就可以取得最後一天的日期。
所以組合起來就可以得到
Select * from STOCK_AAA where 日期=(Select MAX(日期) from STOCK_AAA)
2.
要取得前五天的日期集合
Select TOP 5 日期 from STOCK_AAA where 日期<= '2007/5/28' ORDER BY 日期 DESC
用最小值,就可以取到五天前的那個日期
SELECT MIN(日期) FROM (Select TOP 5 日期 from STOCK_AAA where 日期<= '2007/5/28' ORDER BY 日期 DESC)
再來用 between + 平均值
最後全部組合成一個 SQL
其實到這麼複雜,用 Storage Procedure 或 配合 VIEW 會比較簡單明瞭 |
|
|
|
|
|
|
暱稱: joey0415
中學生
- 帖子
- 361
- 主題
- 57
- 精華
- 0
- 積分
- 426
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- 2003,2010
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2010-5-13
- 最後登錄
- 2022-12-8
|
3#
發表於 2010-6-28 17:51
| 只看該作者
回復 joey0415
GOOGLE回覆
http://www.mobile01.com/topicdetail.php?f=512&t=1611893&last=20372916
...
PD961A 發表於 2010-6-28 11:40 
這也是我在別的網站貼過了,不過這位大大只回答一半,因為我除了要平均,還要整欄都是如此,如果用excel一下子就做完了,我只想看看sql的方法,結果會變如何!
謝謝 |
|
|
|
|
|
|
- 帖子
- 472
- 主題
- 5
- 精華
- 0
- 積分
- 485
- 點名
- 0
- 作業系統
- Windows
- 軟體版本
- MS Office
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 香港
- 註冊時間
- 2010-7-4
- 最後登錄
- 2014-12-28

|
4#
發表於 2010-7-4 13:32
| 只看該作者
本帖最後由 kimbal 於 2010-7-4 13:37 編輯
SELECT x.日期, AVG(y.最低) moving_average from
STOCK_DAY X, STOCK_DAY Y
where X.日期>= '2007-05-30'
AND x.日期 BETWEEN y.日期 AND dateadd(d,5,y.日期)
GROUP BY x.日期
ORDER BY x.日期
如果不想寫死'2007-05-30', 可用 (select MAX(日期) FROM (select TOP 5 日期 from STOCK_DAY ORDER BY 日期)) 代替
參考
http://oreilly.com/catalog/transqlcook/chapter/ch08.html |
|
|
|
|
|
|
暱稱: joey0415
中學生
- 帖子
- 361
- 主題
- 57
- 精華
- 0
- 積分
- 426
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- 2003,2010
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2010-5-13
- 最後登錄
- 2022-12-8
|
5#
發表於 2010-7-6 11:42
| 只看該作者
SELECT x.日期, AVG(y.最低) moving_average from
STOCK_DAY X, STOCK_DAY Y
where X.日期>= '2007-05-3 ...
kimbal 發表於 2010-7-4 13:32 
看樣子好像可以用,感謝分享 |
|
|
|
|
|
|