アプリ版:「スタンプのみでお礼する」機能のリリースについて

Accessで次のようなテーブルを、身長の高い順に5つに分け、グループ名を
つける方法を教えてください。

名前は、重複がありません。身長は重複があります。
同じ身長の場合も、単純に上からグループ分けします。
レコード数は可変です。

(出力イメージ)      
名前    | 身長 |  グループ
A    | 176 |  G1
B    | 175 |  G1
C    | 174 |  G1
D    | 173 |  G1 
E    | 173 |  G2
   ・
   ・
   ・
よろしくお願いします。

A 回答 (3件)

クエリーだけで処理するならば



・予め処理状態を現わすフィールドを、身長等のデータが記載されているテーブルに用意しておき

1.更新クエリーで全て未処理にする
2.各グループに配分する数を計算する。仮に5人だとすれば
3.SELECT TOP 5 Str([身長])+Str([ID]) などの形で、身長以外の重複しないことが確実なキーを付加して上位5人を選択する。身長が99センチ以下もある場合は桁あわせに注意
4.これを選択クエリーにして、元テーブルとIDでリレーションを取り、グループ番号と、処理済みを更新する
5.処理済を除く形で3.~4.を繰り返す
    • good
    • 1
この回答へのお礼

確認が遅くなってすみません。
fuuten_no_nekoさんの方法で、思うようにでき、すっきりしました。ありがとうございました。

お礼日時:2004/11/27 16:03

クエリーの様な単純な形ではできないと思います。



例えば、5人だけのデータでしかも全員が同じ身長である時も、質問文の意図からすると、5つのグループに分けることが必要ですが、これが、単純なクエリーなどではできません。

プログラム的に処理しないとできないと思います。

この回答への補足

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

すみません、説明不足でした。
データは、5000~1万件になると思います。

全員が同じ身長ということはないのですが、
5000件時に、100件程度の同じ身長データは
出てきそうです。

補足日時:2004/11/06 00:22
    • good
    • 0

あなたがAccessのテーブルでそれをすることはできません。


 クエリーで新規作成→選択クエリー→クエリーの元データにテーブル名を指定します。
 クエリーを使えば簡単だと思います。分割したいフィールドの抽出条件に数値を入れるだけでできると思います。
 クエリーについては勉強してください。

この回答への補足

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

クエリは分かるのですが、
どんな条件にすればいいのか、分からなかったのです。

補足日時:2004/11/06 00:25
    • good
    • 0

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

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