過去ログ

                                Page     243
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼RANK関数  みけねこ 03/4/7(月) 12:51
   ┗Re:RANK関数  こうちゃん 03/4/7(月) 20:14
      ┗Re:RANK関数  みけねこ 03/4/8(火) 11:46
         ┗Re:RANK関数  こうちゃん 03/4/8(火) 12:05

 ───────────────────────────────────────
 ■題名 : RANK関数
 ■名前 : みけねこ
 ■日付 : 03/4/7(月) 12:51
 -------------------------------------------------------------------------
   クエリ作成での質問です。
テストの得点のフィールドがあり、それに順位をつけるフィールドを作りたい場合
Rank関数を使えばいいのでしょうか?どのように配置したらよいか教えてください。

 ───────────────────────────────────────  ■題名 : Re:RANK関数  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 03/4/7(月) 20:14  -------------------------------------------------------------------------
   みけねこさん、こんにちは

>テストの得点のフィールドがあり、それに順位をつけるフィールドを作りたい場合
>Rank関数を使えばいいのでしょうか?どのように配置したらよいか教えてください。

Rank関数はスプレッドシート関数じゃないですか?
基本的にアクセスでは使えないでしょう。

クエリを新規作成して、以下のSQL文をSQLビューに貼り付けてお試しください。
※テーブル名、フィールド名は実際のものに変更してくださいね。

SELECT Count(*) AS 順位, テストテーブル.氏名, テストテーブル.得点
    FROM テストテーブル, テストテーブル AS テーブル2
    WHERE テストテーブル.得点 <= テーブル2.得点
    GROUP BY テストテーブル.氏名, テストテーブル.得点
    ORDER BY Count(*)

 ───────────────────────────────────────  ■題名 : Re:RANK関数  ■名前 : みけねこ  ■日付 : 03/4/8(火) 11:46  -------------------------------------------------------------------------
   教えてくださり、ありがとうございます。
なにぶん全くの初心者でお恥ずかしいことをお聞きしますが、

SELECT Count(*) AS 順位, テストテーブル.氏名, テストテーブル.得点
    FROM テストテーブル, テストテーブル AS テーブル2
    WHERE テストテーブル.得点 <= テーブル2.得点
    GROUP BY テストテーブル.氏名, テストテーブル.得点
    ORDER BY Count(*)

上記のテーブル2は何でしょう?氏名や得点が入力してあるテーブル=テストテーブルですよね。

すみません。こんな私には無理でしょうか?

 ───────────────────────────────────────  ■題名 : Re:RANK関数  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 03/4/8(火) 12:05  -------------------------------------------------------------------------
   ▼みけねこ さん:
>教えてくださり、ありがとうございます。
>なにぶん全くの初心者でお恥ずかしいことをお聞きしますが、
>
>SELECT Count(*) AS 順位, テストテーブル.氏名, テストテーブル.得点
>    FROM テストテーブル, テストテーブル AS テーブル2
>    WHERE テストテーブル.得点 <= テーブル2.得点
>    GROUP BY テストテーブル.氏名, テストテーブル.得点
>    ORDER BY Count(*)
>
>上記のテーブル2は何でしょう?氏名や得点が入力してあるテーブル=テストテーブルですよね。
>
>すみません。こんな私には無理でしょうか?

テストテーブルを「テーブル2」の別名で指定しています。

SQLの概要としては、レコードを1つずつ検査して、ある位置のレコードの自分より小さいレコード数を数えて「順位」としています。
実際にクエリに書くときは識別できれば何でもいいですよ。
私はSQL文が長くなるのを避けるため、T1とかT2とかの別名にすることが多いですね。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 243