0

私はSQLサーバーに非常に慣れていません。日中の株価情報と分析計算 (例: 単純移動平均 - SMA) を含むテーブルが必要です。

市場データを含むテーブルを設計し、データをインポートしました。ここで、SMA をテーブルに追加して保存します。翌日、市場の新しいデータを追加し、前日の最後の SMA の数値に基づいて計算し、同じテーブルに再度保存したいと考えています。

SQLサーバーでこのように進んでいますか、それともSMAを取得するためのクエリが必要であり、結果をソーステーブルに保存する方法が必要です。これは、1つのテーブルで結果を保存し、同じデータに対してクエリを再度実行しないためです!

つまり、MVA結果の数値をテーブル(できればソーステーブル)に保存しない場合、古いデータと新しいデータに対してクエリと計算を再度実行して、新しい日の分析を取得する必要があると思いますが、これは実用的ではありません.

私を正しい道に導いてください!詳細を教えていただければ幸いです(どのように!)。

詳細 - SQL サーバー 2008 を使用しています。これらの結果はすべて Excel と VBA で簡単に取得できましたが、データが膨大なため、SQL サーバーに移動する必要があります。

4

1 に答える 1

0

SMA を計算するユーザー定義関数を作成し、この関数をテーブルの計算列の値として使用します。

sudo コード - これは単なるアイデアです - 私はテストしていません:

CREATE FUNCTION dbo.GetSMAValue(INT @price, INT @date)
RETURNS IN
AS 
  SELECT (@recid + sma) / no-of-days --whatever the formula for SMA
  FROM price_table 
  WHERE date = dateadd (day,-1, @date)


ALTER TABLE price_table 
ADD sma AS dbo.GetSMAValue(price, date)
于 2012-06-18T07:41:33.340 に答える