dポイントプレゼントキャンペーン実施中!

質問は百万件を越える日別/銘柄別レコードがあります。
このレコードにある終値のフィールドを使って前日比
増減のフィールドを追加する方法がないか教えて下さい。

追加する必要性は増減のフィールドを使って値上り、値下り
銘柄数から求める指標を作成しる為です。
現在上場されている株価データは増減付きのデータが
手に入るので問題がありませんでした。

分析を遡って行う為に、廃止銘柄のデータを収集すると
どれも増減がありません。
数万件ならExcelで計算した後で取込みも出来ますが
百万を超えるデータなのでAccessで増減を計算出来ないでしょうか?

Accessは使いながら覚えただけで知識にバラツキがあるので
初心者扱でお願いします。
因みにSQLは、DB2の入門講習を昔受けた事がある
程度でしかありません。

質問には関係ないと思いますが、テーブルは
 ・株価テーブル(日付・銘柄コード・始・高・安・終・出来高)
 ・銘柄テーブル(コード・名称・削除・上場日・廃止日...etc)
 ・騰落履歴 (日付・値上数・値下数・不変・N/A・騰落レシオ)
  ※データ処理結果格納テーブルです。

マシン:OS=WinXP SP2、Access2002 Office SP3適用済

以上宜しくお願いします。

A 回答 (1件)

まず、前日比増減フィールドは株価テーブルに追加でいいのでしょうか。


その場合の前日比増減の値の計算ですが、VBAを使ったほうが簡単だと思います。

(1)銘柄テーブルを開く(この時点で、銘柄レコードのカレントレコードは先頭になっています)

(2)銘柄テーブルのカレントレコードを取得し、株価テーブルから当該銘柄のデータを抽出する。このとき日付で昇順に並べ替えておく
例:SELECT * FROM 株価テーブル
  WHERE 銘柄コード = (銘柄テーブルのカレントレコードのコード)
  ORDER BY 日付

(3)(2)で抽出したレコードセットのN+1行目の終値からN行目の終値を引きN+1行目の前日比増減フィールドに入力する。(但し、N = 1,2,3・・・)

(4)銘柄テーブルのカレント行を1つ進め、(2),(3)を繰り返す。但し、銘柄テーブルが最終行まで行ったら処理終了。

とりあえず、こんな感じでどうでしょう。
初心者と言ってもどの程度のレベルかさっぱりわからないのでとりあえず考え方だけ書いてみました。不明な点はまたご質問ください。

この回答への補足

回答ありがとうございます。

>>初心者と言ってもどの程度のレベルかさっぱりわからないのでとりあえず考え方だけ書いてみました。

紛らわしい事を書いて混乱させて申訳ありません。

VBAは、本のサンプルを見ながら、独自のExcel関数を作った事がある程度です。
多分、サンプルがあればどうにかなるのではと思いますので
参考になる様なものがありましたら教えて下さい。

又、作成したVBAの使い方(クエリに組込むのか、直接モジュールを実行させるのか)
も教えて下さい。

質問が舌足らずだったので条件を追加します。
前日比増減がない株価テーブルのデータに増減を計算して
既に、増減があるテーブル(マスター)にレコード単位で追加する
方法を考えています。

お手数ですが教えて下さい。

補足日時:2004/11/19 15:47
    • good
    • 0
この回答へのお礼

大変貴重な回答を頂きありがとうございました。

銘柄テーブルを使って、比較のキーを減らすアイデアは
思いつきませんでした。

VBAは、Accessマクロ&VBAのQAがあるサイトで
コーディングしてくれた方が現れたので解決しました。

お礼日時:2004/11/21 01:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す