access 最新のレコードのみを表示
今回のaccessの小技は小技ながら、とても役に立つ小技です。
でも、どう説明したら良いのか?
まあ、まずは実例を見てください。
よく、人事台帳を作るときに上の表のような社員ごとの配属の表を使います。
異動があるので、履歴として残ります。
一人の社員番号に対して異動日ごとに複数のレコードが発生します。
ここで、例えば今日現在の社員名簿を作ろうとする時に、最新のレコードだけを必要とするわけですが、どうすれば良いのでしょうか?
私もこの小技を知る前はレコード上にダミーの異動終了日などを持たせて抽出条件とするような方法を考えたりしていました。
しかし、もっと、スマートな方法があるので、今回ご紹介します。
1.まず、下のような異動履歴を持つテーブルを元にしたクエリがあるとします。
この中から社員番号に対して、一番新しい異動日を持つレコードのみを抽出したい訳です。
2.そこで、次のようなクエリを作ります。
3.元となるクエリのコピーを作ります。(右クリックで名前をつけて保存)
4.コピーのクエリをデザインビューで開きます。
元となるテーブル(上の例ではtb_異動)にカーソルを持っていき、右クリックするとプロパティが表示されます。
プロパティをクリックします。
5.別名の欄に”別名”をつけます。
名前は何でも良いのですが、上の例では、"temp"と名前を付けています。
6.抽出条件欄に次のように記述します。
(SELECT MAX( [フィールド] ) from [クエリー名] WHERE [キーフィールド] = [クエリー名]![キーフィールド] )
具体的には次のようになります。
(SELECT MAX( [異動日] ) from [Q_異動履歴] WHERE [社員番号] = [temp]![社員番号] )
意味としては、”元となるクエリ上からキーフィールドが同じレコードの中でフィールドが最大となるレコードを抽出する”というような意味あいとなりますが、難しく考えずにそのまま、使ってみてください。
7.異動日が最新のレコードだけが表示されます。
トラックバック(3)
このブログ記事を参照しているブログ一覧: access 最新のレコードのみを表示
このブログ記事に対するトラックバックURL: http://nakashima.qee.jp/blog/mt-tb.cgi/77
遽邏・坩縺励↓蠖ケ遶九▽諠・ア縲∫ッ邏・坩縺励↓蠖ケ遶九▽繧ー繝・ぜ繧堤皮ゥカ縺礼エケ莉九☆繧九ヶ繝ュ繧ー縺ァ縺吶らッ邏・坩縺励▲縺ヲ縺。繧・▲縺ィ縺励◆蟾・螟ォ縺ァ諢丞、悶→蜉ケ譫懊′蠕励i繧後k繧ゅ・縺ァ縺吶h縲ゆク邱偵↓遽邏・坩縺励r螳溯キオ縺励∪縺帙s縺具シ・ 続きを読む
コメントする