• 締切済み

ACCESSで前日比を行う方法で最も効率のいいと思われる方法は・・・??

deecyanの回答

  • deecyan
  • ベストアンサー率38% (89/233)
回答No.2

クエリーを使うのであれば 15こも作らないで 2つでいけます 前の日の値を出すクエリを作って それを結合させ 前日比を出すクエリです テーブル TBL1 項目 day1 SU1 SU2 SU3 10/14 13 25 36 10/13 12 23 35 10/11 11 22 33 10/10 10 20 30 があると 前の日値を出すのクエリは day2 ysu1 ysu2 ysu3     13 25 36 10/14 12 23 35 10/13 11 22 33 10/11 10 20 30 ですね クエリーの式は  day2: (select min(x.day1) from tbl1 as x where x.day1 > [tbl1].[day1]) ysu1:SU1 ysu2:su2 ysu3:su3 あとは結合して計算するクエリを作ってください。

関連するQ&A

  • 先物前日比について

    はじめまして。 ものすごく基本的な質問で恐縮なのですが、先物取引の前日比の算出方法を教えていただけますか? 現物の株ですと、「現在値-前日終値」が前日比となりますが、先物(指数先物、商品先物など)は「現在値-清算値」なのでしょうか? それとも、取引所によって定義は違ったりしますか?

  • AccessのクエリでvbLfのみ抽出するには

    Access2010のクエリー(SQL)で vbLfかvbCrLfが含まれているレコードを抽出するには、 SELECT [テーブル1].* FROM テーブル1 WHERE [テーブル1].フィールド1 Like "*" & Chr(10) & "*"; vbLfが含まれているレコードは抽出せず、 vbCrLfが含まれているレコードだけを抽出するには、 SELECT [テーブル1].* FROM テーブル1 WHERE [テーブル1].フィールド1 Like "*" & Chr(13) & Chr(10) & "*"; でよいと思いますが、 vbCrLfが含まれているレコードは抽出せず、 vbLfが含まれているレコードだけを抽出するには、 どのように記述すればよいのでしょうか。 よろしくお願いします。

  • ACCESSクエリーについて(条件抽出等3差分)

    こちらのクエリーを活用して経過日数を算出しているのですが、 http://okwave.jp/qa/q8769213.html (SQL構文) SELECT テーブル.ID, Max(テーブル.利用日) AS 直近利用日, Max(テーブル.利用回数) AS 利用回数, Sum(テーブル.利用金額) AS 利用金額合計, Min(DateDiff("d",[利用日],DateValue([yyyymmdd]))) AS 経過日数 FROM テーブル GROUP BY テーブル.ID; パラメータのyyyymmddには「2013/12/10」のように、区切り記号付きの日付を入力。 エクセル上で同じ日付-日付の経過日数でみると、エクセルの方が1多いのですが、これはエクセルが誤りでしょうか。 例 クエリー: 2014/09/27でパラメーターを指定  2014/05/13 が直近日付 = 137 例 エクセル: 2014/09/27とセルに入力 そこから右記のセルを引く 2014/05/13 が直近日付 = 136

  • AccessのSQL

    次のように同じ日付の中に複数の点数がある場合、 各日の最大点だけを表示するクエリを作りたいのですが、どのようにSQLを書けばよろしいでしょうか? SELECT MAX(点数) , 日付 FROM テーブル; ↑のような文では、エラーになってしまいました・・・ --------------------- 点数 日付 --------------------- 12 2005/11/22 23 2005/11/24 74 2005/11/24 20 2005/11/30 52 2005/11/30 --------------------- 以上、よろしくお願いいたします。

  • Access 分類分け クエリの作成方法について

    商品分類項目に野球 テニス サッカー等の項目が15以上あります。 その各項目にウエア シューズ グッズ 構成比率とあります。 テーブルを作成するときに構成比率 ウエア シューズ グッズ 分類IDとフィールドを作成し、項目事に分類IDを振り分けました。 野球販売高を算出するには売上高*野球構成比/100*0.5と計算します。 クエリでこれらを計算するには抽出条件で15項目のファイルを作成する必要がありますよね さらに計算する1項目につき1ファイル必要ですよね 算出するのは野球販売高だけではなく、テニス販売高、サッカー販売高 と項目事に必要です。 計算項目はこれ以外にも14あり、それらを上記の方法で算出するとファイル数が膨大になります。 Accessではクエリの数が数十個になるのは普通なのでしょうか?

  • Access2002で後から前日比増減を追加する方法ありますか?

    質問は百万件を越える日別/銘柄別レコードがあります。 このレコードにある終値のフィールドを使って前日比 増減のフィールドを追加する方法がないか教えて下さい。 追加する必要性は増減のフィールドを使って値上り、値下り 銘柄数から求める指標を作成しる為です。 現在上場されている株価データは増減付きのデータが 手に入るので問題がありませんでした。 分析を遡って行う為に、廃止銘柄のデータを収集すると どれも増減がありません。 数万件ならExcelで計算した後で取込みも出来ますが 百万を超えるデータなのでAccessで増減を計算出来ないでしょうか? Accessは使いながら覚えただけで知識にバラツキがあるので 初心者扱でお願いします。 因みにSQLは、DB2の入門講習を昔受けた事がある 程度でしかありません。 質問には関係ないと思いますが、テーブルは  ・株価テーブル(日付・銘柄コード・始・高・安・終・出来高)  ・銘柄テーブル(コード・名称・削除・上場日・廃止日...etc)  ・騰落履歴 (日付・値上数・値下数・不変・N/A・騰落レシオ)   ※データ処理結果格納テーブルです。 マシン:OS=WinXP SP2、Access2002 Office SP3適用済 以上宜しくお願いします。

  • アクセスクエリ メモ型だとエラーになる

    アクセスのテーブル1(主キーなし)に *********************************************************** フィールド1(メモ型) あああ いいい ううう いいい *********************************************************** と言うデータがあるのですが 「あああ」「ううう」は1個で「いいい」は2つあります。 これを、クエリ1で *********************************************************** SELECT テーブル1.フィールド1, Count(テーブル1.フィールド1) AS フィールド1のカウント FROM テーブル1 GROUP BY テーブル1.フィールド1; *********************************************************** と作り、 新しいクエリで *********************************************************** SELECT テーブル1.フィールド1, クエリ1.フィールド1のカウント FROM テーブル1 INNER JOIN クエリ1 ON テーブル1.フィールド1 = クエリ1.フィールド1; *********************************************************** としたいのですが、 メモ型ではダメなのでしょうか? メモ型でフィールドを宣言しつつ、 このようなクエリを作るにはどうすればいいですか? テキスト型にすると問題なくいけます。

  • アクセス クエリ

    アクセス クエリの抽出について教えて下さい。例えば、1つのクエリの中に数値のフィールドが5つ作成してあり、それぞれ違うフィールドの抽出条件をしています。それぞれの条件を入れてしまうと5つのフィールド条件全てに合ったものしか抽出できません。 5つのフィールドのうち、どれでも1つ一致したら抽出できるようにしたいのですが良い方法を教えて下さい。宜しくお願いします。

  • 「今日の日付を含む」と言う条件のクエリ(yyyy/mm/dd hh:mm形式)

    テーブル1の 日付フィールドには「yyyy/mm/dd hh:mm」形式にしているため 「2009/02/28 0:30」と入力されています。 クエリ1に SELECT テーブル1.日付 FROM テーブル1 WHERE (((テーブル1.日付)=Date())); とした場合は 「2009/02/28 0:30」 は表示されません。 テーブル1の 「2009/02/28 0:30」を「2009/02/28 0:00」にすれば クエリ1を実行すると「2009/02/28 0:00」のレコードが表示されます。 どうすれば日付+時間の場合も日付で抽出することができるのでしょうか? アクセス2003です。 よろしくお願いします。

  • 【Access】2つのクエリを1つにまとめる方法

    下記のT_Subテーブルでmain_idフィールド毎のdayフィールドの最大値のレコードを取得し、 取得したレコードの中でT_Mainのidフィールドに存在するもののみを表示したいと思い、 下記のQ_T_Sub_SelectクエリとQ_Ansクエリを作成し、 Q_Ansクエリを実行する事で意図した動作になったと思います。 その後、この2つのクエリを1つのクエリにまとめようと思ったのですが、 どのように記述すれば良いか分からなかった為、アドバイスいただける方がいらっしゃいましたら、 ご教示の程よろしくお願いします。 【Q_T_Sub_Selectクエリ】 SELECT T_Sub.* FROM T_Sub WHERE (((T_Sub.id)=(SELECT TOP 1 id FROM T_Sub Q WHERE Q.main_id = T_Sub.main_id ORDER BY day DESC, id DESC ))); 【Q_Ansクエリ】 SELECT T_Main.id, T_Main.field1, Q_T_Sub_Select.id, Q_T_Sub_Select.day, Q_T_Sub_Select.field2 FROM T_Main LEFT JOIN Q_T_Sub_Select ON T_Main.id = Q_T_Sub_Select.main_id; 【Q_Ansクエリの実行結果】 T_Main.id|field1|Q_T_Sub_Select.id|day|field2 1|A|2|     |2000 3|C|6|2011/03/10|200 【テーブル(T_Main)】 id|field1 1|A 3|C 【テーブル(T_Sub)】 id|main_id|day|field2 1|1|     |100 2|1|     |2000 3|2|2011/03/04|400 4|2|2011/03/03|500 5|3|2011/03/10|300 6|3|2011/03/10|200 なお、1つのクエリにまとめたい理由ですが、最終的にはクエリではなく、 Visual Basic上に記述を移植したいと思っているためです。 ちなみに、1つのクエリをVisual Basic上に移植して SQLの実行結果を利用するイメージは何となく分かるため、 2つのクエリを1つにまとめる方法を希望しましたが、 2つのSQL文があってもクエリなどを使用せず、 Visual Basic上への記述のみで動作する方法があれば、そのような方法でも大丈夫です。 以上、よろしくお願いします。