Microsoft Access ClubAccess超初心者対象ForumAccess初級者対象ForumAccess初・中級者対象ForumAccess VBA Tips ForumDAO、ADO、SQL Forum

     

No60317.ソートしたデータの先頭1件を抽出する方法

タイトルソートしたデータの先頭1件を抽出する方法
記事No: 60317
投稿日: 2005/10/07(Fri) 20:57
投稿者: 夜子
OS:XP
Access Version:2000

はじめまして。
SQLもAccessも初心者の 夜子と申します。

以下のような一覧テーブル「テスト」を以て、
生徒が受けたテストの情報管理をしようとしています。

<テーブル「テスト」>
入学年度 出席番号 生徒名  得点  実施日
----------------------------------------------
 2003   0010  そあら   250 2005/07/05
 2005   0010  せりか   262 2005/07/05
 2003   0010  そあら   275 2005/04/09
 2005   0011  かりな   210 2005/07/05
 2005   0011  かりな   193 2005/08/04
 2003   0015  せりか   218 2005/04/09
 2004   0022  ジュン市  149 2005/04/09

このテーブルから、クエリを用いて、生徒が最後に受けたテストの結果を
抽出したいのですが、上手くいきません。

<期待する結果>
入学年度 出席番号  実施日  生徒名  得点
----------------------------------------------
 2003   0010  2005/07/05 そあら   250
 2003   0015  2005/04/09 せりか   218
 2005   0011  2005/08/04 かりな   193
 2004   0022  2005/04/09 ジュン市  149
 2005   0010  2005/07/05 せりか   262
 2005   0011  2005/08/04 かりな   193

とりあえず以下のSQLでデータをソートするところまでは出来ているのですが、
そこから先には手も足も出ない状態で…。

<ソートSQL>
SELECT テスト.入学年度, テスト.ID, テスト.実施日, テスト.生徒名, テスト.得点
FROM テスト
ORDER BY テスト.入学年度, テスト.ID, テスト.実施日 DESC;


「生徒毎に先頭のデータ1件を抽出」するには、どうすればよいのでしょうか。

タイトルRe: ソートしたデータの先頭1件を抽出する方法
記事No: 60319
投稿日: 2005/10/07(Fri) 21:05
投稿者: みるく
たとえば、

(1) 生徒ごとに実施日の最大値を求める集計クエリーを作ってから、
(2) (1)のクエリーとテーブルとでもうひとつクエリーを作る。

タイトルRe^2: ソートしたデータの先頭1件を抽出する方法 (解決しました!)
記事No: 60324
投稿日: 2005/10/07(Fri) 21:57
投稿者: 夜子
さっそくのレス、ありがとうございました。


> たとえば、
>
> (1) 生徒ごとに実施日の最大値を求める集計クエリーを作ってから、
> (2) (1)のクエリーとテーブルとでもうひとつクエリーを作る。

仰る通りテーブル2つにしてみましたら、
上手く抽出できました!!


<テーブル「ソート」>
SELECT DISTINCT テスト.入学年度, テスト.ID, Max(テスト.実施日) AS 実施日の最大, テスト.生徒名
FROM テスト
GROUP BY テスト.入学年度, テスト.ID, テスト.生徒名
ORDER BY テスト.入学年度, テスト.ID;

<テーブル「選択」>
SELECT テスト.入学年度, テスト.ID, テスト.生徒名, テスト.得点
FROM テスト INNER JOIN [02_sort クエリ] ON (テスト.入学年度 = [ソート クエリ].入学年度) AND (テスト.ID = [ソート クエリ].ID) AND (テスト.実施日 = [ソート クエリ].実施日の最大)
GROUP BY テスト.入学年度, テスト.ID, テスト.生徒名, テスト.得点;


ほんとにありがとうございました。

タイトルRe^3: ソートしたデータの先頭1件を抽出する方法 (解決しました!)
記事No: 60325
投稿日: 2005/10/07(Fri) 22:00
投稿者: 夜子
>
> 仰る通りテーブル2つにしてみましたら、
> 上手く抽出できました!!
>
「テーブル2つ」ではなく、「クエリー2つ」でしたね。
失礼しました。


このAccessフォーラム過去ログ集は、Microsoft Access Club が運営しています

cPanelコントロールパネルインストール済みサーバー、アメリカやヨーロッパ、パナマなど海外経験豊富な当社へお任せ下さい。
cPanelパネルのインストール済みレンタルサーバー
アメリカ、ヨーロッパ、パナマなど海外経験豊富な当社へお任せ。
忙しい方に即応、対応はWEBを介したメールアドレスで行ないます。

 

ページの先頭へ 前ページへ戻る