- ベストアンサー
最大値の求め方
ACCESS2000をWin2000Proで使っています。 会社コード、ページ番号、行番号 のフィールドがあるテーブルがあります。 それぞれ、会社ごとに、ページ番号、行番号のレコード数が違います。 例:A社は、42レコード、ページ番号のMAX値が9、でページ番号9のレコードの 行番号は、1と2。 B社は、68レコード、ページ番号のMAX値が7、でページ番号7のレコードの 行番号は、1~8。 A社であれば、ページ番号:9、で行番号:2 のレコード B社であれば、ページ番号:7、で行番号:8 のレコード というように、([ページ番号]&[行番号])の最大値を抽出したいのですが、 どうやればいいか、思い浮かびません。 ご存知の方、アドバイスだけでもいただけると幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 ご質問の内容で確認なんですが、とりあえず次のふたつに読み取れます。 (1)会社コードごとに、まずページ番号の最大を出してから、そのページ番号内で最大の行番号を抽出する (2)会社コードごとに、とにかく最大のページ番号と行番号を抽出する たとえば 会社コード:B社 - ページ番号:4 - 行番号:10 という行が存在する場合、 (1)の結果…B社,7,8 (2)の結果…B社,7,10 になります。 SQLでよろしければ、下記のようになります。 (1) SELECT 会社コード, ページ番号, max(行番号) FROM てーぶる WHERE ページ番号 in ( SELECT max(ページ番号) FROM てーぶる GROUP BY 会社コード ) GROUP BY 会社コード, ページ番号; (2) SELECT 会社コード, max(ページ番号), max(行番号) FROM てーぶる GROUP BY 会社コード; こんな感じになります。 …私、副問合せは苦手なんですよねぇw
その他の回答 (1)
- _satoshi_
- ベストアンサー率44% (4/9)
会社コードで GROUP BY して MAX でページ番号と行番号を取得するってのはダメですか?