• ベストアンサー

最大値の求め方

ACCESS2000をWin2000Proで使っています。 会社コード、ページ番号、行番号 のフィールドがあるテーブルがあります。 それぞれ、会社ごとに、ページ番号、行番号のレコード数が違います。 例:A社は、42レコード、ページ番号のMAX値が9、でページ番号9のレコードの 行番号は、1と2。 B社は、68レコード、ページ番号のMAX値が7、でページ番号7のレコードの 行番号は、1~8。 A社であれば、ページ番号:9、で行番号:2 のレコード B社であれば、ページ番号:7、で行番号:8 のレコード というように、([ページ番号]&[行番号])の最大値を抽出したいのですが、 どうやればいいか、思い浮かびません。 ご存知の方、アドバイスだけでもいただけると幸いです。

  • idek
  • お礼率47% (170/361)

質問者が選んだベストアンサー

  • ベストアンサー
  • rio_d
  • ベストアンサー率47% (71/149)
回答No.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)

回答No.1

会社コードで GROUP BY して MAX でページ番号と行番号を取得するってのはダメですか?

関連するQ&A

  • キーのフィールドが最大値の他フィールドのデータ抽出

    下記のようなテーブルがあったとします。 ----------------------  (1) | (2) | (3)  ----------------------  A | 3 | あ  A | 1 | い  A | 5 | う  B | 3 | え  B | 2 | お ---------------------- フィールド(1)がグループで、それぞれAグループ、 Bグループとします。 このとき、それぞれのグループ内のフィールド(2)が 最大のレコードのフィールド(3)データを抽出したいのですが、 どのようにすればよいでしょうか? 上記の例で言うと、 ----------------------  (1) | (2) | (3)  ----------------------  A | 5 | う  B | 3 | え ---------------------- という結果を得たいのですが・・・

  • グループ化+最大値

    お世話になっております。GomiYasikiです。 以下のような場合で、フィールドAが同じ中のフィールドBが最大値のものを抽出する場合はどのようにすればよいのでしょうか? お手数ですが、宜しくお願い致します。 テーブル名:テーブルA フィールドA,フィールドB,フィールドC AAAAA,1,ABC AAAAA,2,XYZ BBBBB,1,ABC BBBBB,2,DEF CCCCC,1,AAA ↓結果 AAAAA,2,XYZ BBBBB,2,DEF CCCCC,1,AAA

  • テーブルの最後(最新)のレコードを抽出したい

    宜しくお願いします。 PHP MYSQL の組み合わせで使っています 以下のようにして、最後のレコードを取り出したいのですが まったく違う事をしているのかもしれません。 $sql =" select * from テーブル where フィールド='max' " ; フィールドはauto_incrementで番号を振っています。 これで最大のつもりなのですが・・・。 他にも、レコードを入れた時間も記録したフィールドがあるのですが どうしてよいか?判りません。 テーブルの最新のレコードを出したいのです。 **その中の一つのフィールドを取り出すのですが、   それはうまくいっているみたいです    (max の所に数字を入れると表示します) お手数かけますが、どなたかご教授お願いいたします。

    • ベストアンサー
    • MySQL
  • アクセスのデータ抽出

    現在テーブルA(支店コード、支店名、郵便番号、住所)とテーブルB(支店コード、社員番号、商品Aの売上数、商品Bの売上数・・・※商品名ごとにレコードを持っています。)の2つのテーブルを使っています。 これをクエリで抽出しているのですが、社員一人につきひとつのレコードしか抽出されません。 売上のない支店も全て抽出し、実績報告書として印刷するため、テーブルAとBに結合のプロパティでテーブルAの全てを選んでいるため、これ以外の方法でテーブルBのデータ全てを抽出したいのですが、何か方法はありますか?

  • アクセスの更新クエリの質問です。

    ちなみにAccess2007を使用しています。 A,B,C,Dというフィールドが有り、AフィールドにはCodeが入っています。 Bフィールドには"bb"という言葉、Cフィールドには"cc"という言葉にそれぞれ書き換え、Aフィールドには、今から更新する1レコードを抽出するため、更新クエリ実行時に、パラメーターを入力するように設定しました。 しかし、更新するレコードは、全45000件中、6000件くらいあり、いちいちコードを入れるのが大変です。 もともと、書き換えるためのコードリストがエクセルデータとして有り、Accessにインポートすれば、コードリストをAccessのテーブルにする事も出来ます。このテーブルを使って簡単に、書き換えることは出来ないものなのでしょうか?

  • SQL最大値レコード抽出について

    下記のようなテーブルがあったとしてフィールド1のコードごとにフィールド2が最大値のものを抽出したいのですが一回のSQLで可能ですか? フィールド1 フィールド2 abc 20070309 abc 20070302 abc 20070307 def 20070304 def 20070306 def 20070303 ・ ・ ・ 例: abc 20070309 def 20070306 ・ ・

    • ベストアンサー
    • MySQL
  • varcharでの最大値抽出

    すいません。お教えください。 Mysql5.0.15で以下のテーブルを作成した時、数値の最大値(1010)を抽出したいのですがどのようにすれば抽出できるのでしょうか?お教えください。 テーブル名:B フィールド名,フィールドタイプ,備考 b_id,int(10),auto_increment b1,varchar(10) b_id,b1 1,999 2,1000 3,1000-1 4,1010 5,800 重ねて質問させてください。 select max(b1) from b;とした場合 999としか表示されません。 これもなぜなんでしょうか。

    • ベストアンサー
    • MySQL
  • 【Access初心者】最大値と次に大きい値の合計

    お世話になります。 Accessで次のテーブルがあります。 テーブル1は半期ごとに更新されフィールドが追加されます。 テーブル1 年度   数  コード 97上   2    A 97下   1    A 96上   8    A 97上   5    B 97下   6    B 96上   3    B (以下500,000レコードぐらいあります) テーブル1をクロス集計します。 コード  97上  97下 96上   合計  97上+97下 A   2     1    8     11       3  B      5     6    3     14       11 (以下つづきます) テープル1は半期ごとに更新されるので【97上+97下】のところのフィールドを手で修正しています。 関数やSQLなどで出来る良い方法はないでしょうか。 サブクエリというのもあると聞いたのでが・・・ Accessは2003です。よろしくお願いします。

  • ACCESS テーブルの結合

    お世話になります。 テーブルA(約20万レコード)、B(6レコード)があり、共通しているフィールドは以下の通りです。  ・受注日  ・製品コード  ・数量 AとBのテーブルの共通しているフィールドを条件無しで1つのテーブルとして見立てたいと思っておりますがうまくいきません。 SELECT A.製品コード, A.数量, A.受注日 FROM A UNION SELECT B.製品コード, B.数量, B.受注日 FROM B; 上記SQLでエラーにはならないのですが、レコード数が本来約20万レコードあるはずが、7万レコードしか抽出されません。 SELECT A.製品コード, A.数量, A.受注日 FROM A; と SELECT B.製品コード, B.数量, B.受注日 FROM B; をそれぞれ分けてやると、レコード数に問題ありません。。 どのようにすれば2つのテーブルを1つに結合できるのでしょうか。 ご教授の程、宜しくお願い致します。

  • 【アクセス】最大値を取得したい

    テーブルの番号フィールド(主キー、数値型)は1~100000くらいまでの番号が振られていますが 80%は空き番号です。 (例えば3の次は100のような) VBAで1~100までのなかで 最大値を取得したいのですがどうしたらよいでしょう? 1 2 3 の次が 100の場合 4を最大値として取得するコードがあれば教えてください! 宜しくお願い致します。

専門家に質問してみよう