• ベストアンサー

accessで順位の合計の順位の求め方

[T_成績]というテーブルの中に    フィールド名:[出席番号]    フィールド名:[得点] というフィールドがあるとします。 まず、新規にクエリーを作ります。これはただの選択クエリーで、[T_成績]テーブルを1個だけ追加します。 クエリーグリッドのフィールド欄に[出席番号]と[得点]を追加します。 最後のフィールドに順位を求める式を入力します。式は以下の通りです。   順位: (select count(*) from T_成績 as T_成績_1 where T_成績_1!得点>T_成績!得点)+1 こうすれば順位が求められるのですが例えば国語と数学と英語の順位の合計の低い順に順番を求めたいのですが(単純に合計の順位ならでるのですが)、順位の合計の順位というものがうまくいきません。本当に困っていますまる3日いろいろ試したのですがうまくいきません。今日も徹夜でした、よろしくお願いします。

  • satooo
  • お礼率39% (127/321)

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

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.5

>循環参照が発生していますというメッセージが出てしまうんです。 ということは、作業用のテーブルを作ったほうがいいかも。 #2で作成したクエリーを、テーブル作成クエリーにして作業用テーブルを作成して、それに対して新たに選択クエリーを作成してみてください。

satooo
質問者

お礼

ありがとうございました。できました。スピードもはやかったです。

その他の回答 (4)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.4

>さらにその順位を求めたいのです、順位を合計したものの >順位をもとめたいのです。よろしくお願いします。 #2で作成したクエリーを元に新たなクエリーを作成して、 satoooさんが作られた順位の計算式みたいに順位の合計の順位を求める。 で平気では? >テーブルを正規化したほうがよさそうな気がするのは気のせい? 今問題になっているのは計算式で求めている個所ですけどどうやって正規化するの? 科目ごとの成績ってのは正規化出来ますけど、今回はほとんど関係ないかと。

satooo
質問者

お礼

循環参照が発生していますというメッセージが出てしまうんです。

satooo
質問者

補足

なんどもすみません。そのやり方には気がついたのですがなぜかできなかったのです、何か問題があるのでしょうか?

noname#5584
noname#5584
回答No.3

話が盛り上がっている?ところに水を差すようで申し訳ありませんが、テーブルを正規化したほうがよさそうな気がするのは気のせい?

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

順位をこうする。 (select count(*) from T_成績 as T_成績_国語 where T_成績_国語!国語の得点>T_成績!国語の得点)+1 + (select count(*) from T_成績 as T_成績_数学 where T_成績_数学!数学の得点>T_成績!数学の得点)+1 + (select count(*) from T_成績 as T_成績_英語 where T_成績_英語!英語の得点>T_成績!英語の得点)+1 T_成績に、[国語の得点]、[数学の得点]、[英語の得点]というフィールドがあるものとします。

satooo
質問者

補足

ありがとうございます。私の説明が下手なようで、順位の合計がうえのようになると思いますが、さらにその順位を求めたいのです、順位を合計したものの順位をもとめたいのです。よろしくお願いします。

  • laputart
  • ベストアンサー率34% (288/843)
回答No.1

※いわれている通りに再現しました。 クエリーで順位まで出来ました。 ところが、国語とか数学とかの要素はどこに 収納されているのでしょうか? 同じT_成績の中に科目というフィールドがあるのか 複数のテーブルを比較したいのかわかりません。 そのあたりを詳しく説明してください。

satooo
質問者

補足

すみません。 T_成績に[国語点数]、[数学点数]、[英語点数]というフィールドがあります。

関連するQ&A

  • Accessでのクエリ作成についてですが

    【Tジャンル】【T商品】【T仕入先】 ↑これらの3つのテーブルを使ってクエリを作成すると仮定します。 それぞれのテーブルにあるフィールドの内容は以下の通りです。 【Tジャンル】 [ジャンルコード(主キー)][ジャンル名] 【T商品】 [商品コード(主キー)][商品名][ジャンルコード] [仕入先コード][仕入原価][標準価格][終息][備考] 【T仕入先】 [仕入先コード(主キー)][仕入先名][フリガナ][郵便番号] [住所][建物名][電話番号][FAX番号][担当者名][メールアドレス] ここで質問があります。 クエリ作成のデザイングリッドのフィールドに [仕入先コード]を追加するとします。 [仕入先コード]は【T商品】と【T仕入先】両方にあるのですが、 フィールド名が同じならば、どちらから追加しても構わないものなのでしょうか? それとも、何か決まり事のようなものがあるのでしょうか? 基礎的な部分の質問ですが、ご存知の方がおられましたら、 どうか宜しくお願いします。

  • ACCESS2010 テキストボックスに合計値を

    どなたかお助け願います。 私のPC環境は Windows7 64bit ACCESS2010  でございます。 ACCESSは苦手ながら簡単な環境を作成いたしております。 テーブル名 T_入出金    フィールド1 入出金月    フィールド2 入金業者名    フィールド3 入金額    フィールド4 出金業者名    フィールド5 出金額 クエリ Q_入金クエリ    フィールド1 入金額の合計: 入金額    集計:合計    フィールド2 入金業者名 集計:Where条件 抽出条件:Like "業者名" フィールド3 入出金日  集計:Where条件 抽出条件:Like 201401  ←日付です。 としたものを作成いたしました。 このフィールド1の合計結果をテキストボックスに表示したく、 メイン帳票フォームのヘッダー部分にテキストボックスを設置し、  コントロールソースに =[Q_クエリ]![入金額の合計] としましたが、#Name? と出てしまいます。 関数が間違っているのでしょうか・・・?

  • Accessで期間指定の売上合計と順位指定のクエリ

    Accessのクエリの質問です。 (1)期間を指定した、顧客の売上を合計。 (2)その順位を出し、1位~100位や250位などの順位を指定した抽出をしたいです。 (1)期間指定の売上合計はできています。 (2)の順位をDCountでしましたが、金額(集計:合計)にしているためか構文エラーがでます。 よろしくお願い致します。 ------------------------------------------------ 2つのテーブルから、Q_売上(クエリ)を作成しました。 tbl顧客 顧客番号 顧客名 tbl販売 販売番号 日付 顧客番号 金額 Q_売上 日付(集計:Where条件) 顧客番号(集計:グループ化) 顧客名(集計:グループ化) 金額(集計:合計) 日付の抽出条件は、 Between [開始] And [終了] としています。 ------------------------------------------------

  • ACCESSのDMAXについて

    ACCESSでの、クエリーの書き方での質問です。 やりたいことは、テーブル中のデータから、最大値を求めて、+1して、レコードを追加したいのです。 商品番号、商品名、番号というテーブルから、商品番号と商品名が一致した中から、 最大の個数を求めるDMAX関数の書き方をどのようにしたらよろしいでしょうか? イメージ的には、 商品番号 商品名 番号 00001   鉛筆    2 00001   鉛筆    3 00001   鉛筆    1 00002   鉛筆    4 となっていた場合、商品番号に「00001」、商品名に「鉛筆」を与えたとき、答えの番号「3」を求めます。 イベントプロシージャではなく、クエリーの画面のフィールド式です。 追加クエリーで、その求めた「3」に+1して、番号を「4」にして新しいレコードを書き込む・・・ なんていうことは可能でしょうか。 VBAでやるのは、なんとなくわかるのですが、クエリーの画面での書き方がわかりません。 (それとも出来ないものなのでしょうか?)

  • (ACCESS)合計を求めたいのですが…

    赤、青、白の3色のサイコロを同時に振って 出た目を色ごとに記録していく データベースを作成しようとしています。 サイコロの目ごとに色別の出現回数を カウントしたクエリを さらに1まとめに合計したいと思い 色々いじくってみたのですが うまく出来ません。 集計して合計を出すには どうすればよいのでしょうか? ---------------------------------------------- テーブル サイコロテーブル      フィールド(回数、白色、青色、赤色)      目テーブル       レコード(サイコロの目=1,2,3,4,5,6) クエリ 選択クエリ(白、青、赤) 選択クエリ(まとめ)

  • Access2003 合計値の求め方について

    Acdess超初心者です。ご存知の方がいらっしゃいましたらお教え下さい。 Access2003で請求書を作成しております。 メインテーブル 宛名、敬称、発行日、請求番号、件名、課税区分、小計、消費税、合計 サブテーブル  請求番号、項番、工事名、数量、単価 サブテーブルを基に作成したクエリ 請求番号、項番、工事名、数量、単価、金額 メインテーブルの請求番号とサブテーブルの請求番号は1対多のリレーションを組んでいます。 メインテーブルとクエリを基にフォームを作成して、メインフォーム(レコードソースはメインテーブル) 上にサブフォーム(レコードソースはクエリ)を配置しています。 サブテーブルの金額の合計をメインフォーム上の「小計」で求めたいのですが、方法が分かりません。 どのように作成するとメインフォーム上の「小計」でサブフォームの金額合計を求めることができるか お教え下さい。 初歩的な質問で申し訳ありませんが何卒よろしくお願い致します。

  • Accessのフォームでの合計欄を二つにわけたい

    テーブル1;売上明細T フィールド名;売上明細番号、商品コード、数量、摘要 テーブル2;商品T フィールド名;商品コード、商品名、単価 クエリで売上明細と商品Tをつなぎ、下記のように表示します。 商品コード 商品名 摘要  数量  単価 明細計                  (数量*販売単価) 001    物件1  作業代  1  500 500 002    物件2  作業代  2  400 800 051    物件51  作業代  1  500 500 051    物件51  交通費  1  350 350  上記クエリを元にフォームを作成(帳票形式)して、 テキストボックスで課税対象計(作業代計)と、非課税対象計(交通費計) のボックスをもちたいのですが可能でしょうか? 最終的には、売上伝票フォームに売上明細フォームをサブフォームで 取り込み、売上伝票上で合計金額を表示させたいと思っています。 よろしくお願いします。

  • Accessのクエリーで合計を出したい

    WinXPでAccess97を使用しています。 数値型のフィールドで、名前が「1」「2」・・・「50」とついてます。これをクエリーで、それぞれのフィールドの値を合計する演算フィールド「合計」を作成したいと思います。 「合計:[1]+[2]+・・・[50]」でもいいのですが、式が長くなります。ForNext文などVBAのループを使ってモジュールに記述して、合計を出す方法はありますか?

  • アクセス・クロス集計(計算式のクエリ・フィールド)

    (1) テーブルには、消費税込の支払額があります。 (2) クエリ内にてその消費税を税抜にするフィールド(計算式)【税抜合計】を追加しました。 (3) そのフィールド(計算式)を用いたクロス集計クエリを算出しようとしているのですが、 「'[税抜合計]を有効なフィールド名、または式として認識できません。」とエラーが出ます。 これはパラメータを使ってエラー処理行うべきものなのでしょうか? 対処方法をご教示頂けますと幸いです。 よろしくお願いします。

  • アクセスで

    ゴルフのスコア管理をしたいのです。 テーブルに1~9ホールまでのスコアを入力するOUTテーブルと 10~18のINテーブルを作りました。 クエリでは1~9までのスコアの合計を出すOUT式と 10~18までのスコアの合計を出すIN式とをつくり TOTALとしてOUTとINを足す演算を デザイングリッドに登録しました。 ところがテーブルには新規に入力する欄がありますが クエリにはありません。 フォームを作りましたが新規に入力できないために 作った意味がありません。 どうして新規に入力できないのかあらゆる可能性を教えてください。 ただし私は初心者なので私でもわかるように詳しく教えてください。 よろしくお願いいたします。