プロが教える店舗&オフィスのセキュリティ対策術

ACCESSに詳しい方の知恵を拝借できたらと思います。
宜しくお願い致します。

早速ですが、休日を挟みデータの存在しない日付を無視し前日比を
計算させる方法で最も効率の良い方法はどのようなものになるでしょうか??

現在クエリ上では日付フィールドの抽出条件に例えばですが・・・“(select max(日付) from ○○ <(select max(日付) from ○日前))”
といった感じで前日比の計算を行うことができるようにしておりますが・・・この方法ですと多くの日数分のクエリを作成したとしても、14日か15日程度で構造が複雑すぎるということで算出することができなくなってしまいます。

何らかの方法で簡略化および日数を増やすことができたらと考えておりますので、アドバイスをお願い致します。

A 回答 (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

あとは結合して計算するクエリを作ってください。
    • good
    • 0

前日比はクエリーを作ってやるものではないのでは?


レコードを更新したときに計算させたほうがよいと思います
フォームを作って 
Sub Form_BeforeUpdate(Cancel As Integer)
に書いて 計算したほうが 後の処理が早いです
    • good
    • 0

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