プロが教えるわが家の防犯対策術!

WIN2000 Access2000 です。
例えばクエリでこういう結果を出したいのですが

ID f1 f2 f3
------------   
1 あ a 10   
2 あ a 20   
3 あ a 30   
4 あ b 11   
6 い c 20   
7 い c 25   
8 い d 30   

  
ID f1 f2 f3
--------------
1 あ a 10
2 あ a 10
3 あ a 20
4 あ b 11
5 あ b 12   
6 い c 20
7 い c 20
8 い d 25


グループでf3が最小だったらそのままの数字を
それ以外だったら、一つ前のデータをそのままもってきたいのですが、クエリでできますか?

A 回答 (2件)

#1です。

補足ありがとうございます。
では、グループは「f1=い、f2=a」といったデータが無くf2のみで特定できる、「ID=5」のデータは無視、という前提で続けます。
SQLを直接記載すれば処理が若干早い方法が使えますが、とりあえず普通のクエリデザインで行きましょう。

ID,f1,f2,f3を表示したクエリに、次のフィールドを追加してみて下さい。いかがでしょうか?

f4: IIf([f3]=DMin("f3","テーブル名","f2='" & [テーブル名].[f2] & "'"),[f3],DMax("f3","テーブル名","f2='" & [テーブル名].[f2] & "' and f3<" & [テーブル名].[f3]))
    • good
    • 0
この回答へのお礼

すごい!!!
ばっちりです。
どうもありがとうございました。
これで先に進めます。

お礼日時:2003/04/22 09:00

定義域集合関数か自己参照で可能だと思いますが、補足をお願いします。


◇「グループ」とは、何で判断するのでしょうか?
  (f1が同じもの?f1もf2も同じもの?)
◇「一つ前のデータ」とは、何で判断するのでしょうか?
  (同一グループ内で、IDが自分自身より小さく、かつ最大のもの?)
◇IDが5のレコードは、上の表(元データ)に無く、下の表(結果)には有ります。どこから出てきたのでしょうか?
◇IDが5のレコードは、IDが4のレコードと同一グループではないのですか?

この回答への補足

ありがとうございます。
「グループ」とはf1が大分類でその中にもf2という小分類があります。今回のグループはf2のことです。
「一つ前のデータ」とはf2のグループ内でf3が小さい順にソートされたとき、f3の値を一つ前のデータのf3の値にしたいということです。
IDが5に関しては抜けてしまってました。すみません。

補足日時:2003/04/21 12:12
    • good
    • 0

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