Accessでランキングを表示する方法について解説する。OracleのRANKのようなランキングのリストを作成したい場合に使用できる。
Accessでランキングを表示したい場合の構文
[項目名]:(Select Count(*) from [テーブル名] Where [ランキング対象項目] < [クエリ内のランキング対象項目]
Accessでランキングを表示したい場合の例
例では、人事台帳の入社年月日順にランキングを付けてみる。SQLビューで実施する。
SELECT (Select Count(*) from 人事台帳 Where [入社年月日] < [Emp].[入社年月日])+1 AS RANK , Emp.社員コード , Emp.社員名 , Emp.入社年月日 FROM 人事台帳 AS Emp;
デザインビューで見ると下記のようになる。
例のクエリの解説
下記にSQLの解説をする
FROM 人事台帳 AS Emp;
参照する人事台帳を”EMP”に改名して全件表示している。
(Select Count(*) from 人事台帳 Where [入社年月日] < [Emp].[入社年月日])+1 AS RANK
カッコ内でSELECT文で副問合せをしており、これが1行ずつ実行される。実行されるときの条件がその行の入社年月日である。その行の入社年月日以前の社員のカウントを取っている。
注意点
注意点としては、件数が多いほど応答時間が遅くなっていく。
処理的には1件ずつ、カウント集計処理が実行されているため、件数が多いほど実行される件数も増えるため、応答時間が遅くなる。
コメント