Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2054 / 2272 ツリー ←次へ | 前へ→

【4041】同じIDのデータの最大値のみを抽出する popo 04/12/17(金) 17:10 質問[未読]
【4042】Re:同じIDのデータの最大値のみを抽出する hatena 04/12/17(金) 18:02 回答[未読]
【4101】Re:同じIDのデータの最大値のみを抽出する かろちん 05/1/9(日) 22:27 回答[未読]

【4041】同じIDのデータの最大値のみを抽出する
質問  popo  - 04/12/17(金) 17:10 -

引用なし
パスワード
   お世話になってます。

以下のような場合について、解決法をご存知の方、教えてください。

テーブルAは植物標本の植物名を入力したものです。

標本IDは、標本のIDナンバー、
種名IDは、種名データをつけた時点で発生するIDナンバーです(植物名のIDナンバーではありません)。
標本IDと種名IDの複数種キーとなります。

以下のようなテーブルになります。

テーブルA
標本ID 種名ID 植物名
1234  0001   A
1234  0002   B
1234  0003   C
1235  0001   A
1235  0002   D
1236  0001   A

このとき、同じ標本IDのうち、種名IDが最大のものを抽出したいのです。
つまり、上のテーブルからだと、、、、

標本ID 種名ID 植物名
1234  0003   C
1235  0002   D
1236  0001   A

と言った具合です。

同じIDのデータの最大値のみをクエリで出せる、、、と思っていたのですが、いかんせん、分かりません…。

どなたか、ご存知でしたら教えていただけますか。
よろしくお願い致します。

【4042】Re:同じIDのデータの最大値のみを抽出する
回答  hatena  - 04/12/17(金) 18:02 -

引用なし
パスワード
   >テーブルAは植物標本の植物名を入力したものです。
>
>標本IDは、標本のIDナンバー、
>種名IDは、種名データをつけた時点で発生するIDナンバーです(植物名のIDナンバーではありません)。
>テーブルA
>標本ID 種名ID 植物名
>1234  0001   A
>1234  0002   B
>1234  0003   C
>1235  0001   A
>1235  0002   D
>1236  0001   A
>
>このとき、同じ標本IDのうち、種名IDが最大のものを抽出したいのです。
>つまり、上のテーブルからだと、、、、
>
>標本ID 種名ID 植物名
>1234  0003   C
>1235  0002   D
>1236  0001   A
>
>と言った具合です。
>
>同じIDのデータの最大値のみをクエリで出せる、、、と思っていたのですが、いかんせん、分かりません…。

種名ID の抽出条件を下記のように設定すればいいかと思います。

(SELECT Max(種名ID) FROM テーブルA AS T WHERE T.標本ID = テーブルA.標本ID)

【4101】Re:同じIDのデータの最大値のみを抽出する
回答  かろちん  - 05/1/9(日) 22:27 -

引用なし
パスワード
   ちょっと遅かったでしょうか?

下記で可能かと思います。

SELECT
  T1.標本ID,
  T1.種名ID,
  T1.植物名
FROM テーブルA AS T1
WHERE T1.種名ID in (select
            MAX(T2.種名ID)
          FROM テーブルA AS T2
          WHERE T2.標本ID=T1.標本ID
          )

2054 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078227
(SS)C-BOARD v3.8 is Free