特定のデータ同士の加算方法について

このQ&Aのポイント
  • 特定のデータ同士の集計を行いたい場合、テーブル同士の加算は基本的には難しいです。しかし、テーブルBのデータをクエリにして加算する方法があります。
  • 具体的には、テーブルAとテーブルBのフィールド名が一致するデータを抽出し、それらを合算することで加算が可能です。
  • また、テーブルBのデータを加算した後には、テーブルAからそのデータを削除するようにすることもできます。
回答を見る
  • ベストアンサー

特定のデータ同士の集計はできますか?

どうしても自分で解決できません。 どなたか教えてください!! windows-xp,アクセス2003を使っています。 テーブルAには、フィールド名「実績ID」「A賞」「B賞」「C賞」「効果金額」という表になっており、データが1万件近くあります。データ型は数値型です。 もうひとつのテーブルBにも、同じくフィールド名「実績ID」「A賞」「B賞」「C賞」「効果金額」というものがあり、データ型は数値型です。 そこで質問です。 テーブルBのデータをテーブルAに加算したいのですが、何かよい方法はないでしょうか? テーブル同士の加算は基本的にはむりだとしたら、テーブルBの方をクエリにして加算する。という方法はいかがでしょうか? ちなみに、テーブルBのデータは、テーブルAにデータを加算したら、データを削除するようにしていきたいと思っています。 すみませんが、宜しくお願い致します。

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

  • ベストアンサー
回答No.2

フィールドの並びが同じですのでユニオン・クエリーでテーブルA・Bを一つにしたものをキー項目(実績ID?)で集計したものでテーブルAを更新してはどうでしょうか。もしテーブルBにしか存在しないデータがあると、新しいテーブルに書き出してテーブルAを削除してテーブルAに追加する、など、もう少し工夫が必要かもしれません。 更新ができたらテーブルBはテーブルAのキーを使って削除すればOKだと思います。 ちなみにユニオン・クエリーは、たしか select * from A union select * from B でいけるはずです。

mipomipo
質問者

お礼

すみません!!補足を使い果たしてしまったので、”お礼”で質問させてください。 なんとか、テーブルAとBを合体させることができました。ちゃんと、AのデータもBのデータも見えました! 次に【集計】をしたいのですが、どのような構文を書いたらよいのでしょうか?! 何度もすみませんが、宜しくお願い致します!!

mipomipo
質問者

補足

”ユニオンクエリ”を初めて聞きましたが、挑戦してみようと思います。 そして、いきなりつまづきました。 「テーブルA・Bを一つにしたもの」とは具体的にどうしたらよいでしょうか? 以下のように、あてはめてみたのですが、「from句の構文エラー」となってしまいました。 SELECT * from T社員 union select * from T社員2 その後の「キー項目(実績ID)で集計したものでテーブルAを更新」というあたりまでは、なんとなくイメージできるのですが・・・。ちなみに、テーブルBにしか存在しないデータはありません。 もし、お時間が許さるのであれば教えて頂きたいと思います。宜しくお願い致します。

その他の回答 (2)

回答No.3

2投稿目です。 ユニオン・クエリーができたなら普通の選択クエリーやテーブルと同じ扱いにできますから、ユニオン・クエリーをもとにしたクエリーで集計すればOKだと思いますよ。 がんばれ!^^

mipomipo
質問者

お礼

できましたーっ!!!ユニオンクエリ、勉強になりました。ありがとうございました!!

  • koganeton
  • ベストアンサー率29% (30/101)
回答No.1

簡単にするならば 両方のテーブルをエクセルにおとして エクセルでコピーして一つの表にする。 それを再びアクセスでインポートする。 アクセス内でするなら ユニオンクオリーを使えば出来ますが・・・。

mipomipo
質問者

補足

できたら、アクセス内ですべてをやってしまいたいので、ユニオンクエリに挑戦しようと思います。 が、初めて耳にするクエリなので、ユニオンクエリを検索していろいろ見ている最中です。 が、何か参考になりそうなサイト、ご存知ないでしょうか?

関連するQ&A

  • ACCESS テーブル内の特定の文字の置換

    お世話になっております。 Access2007+VBAについてになります。 フィールド内の特定の文字を置き換えたいのですが、どのようしたら良いでしょうか。 例えば・・・ テーブル_Aと、テーブルBがあります。 テーブルAには、フィールドCに抽出したいデータのIDが入っています。 テーブルBには、フィールドDに置換えたい日付が入っています。 フィールドDの日付は、『日付は2015-12-22です。』となっており、 フィールドCのIDと、テーブルBにあるフィールドEというIDがマッチしたフィールドDの日付を、『日付は、2015-12-23です。』に置き換えたいと思っています。 IDは、両方ともに、オートナンバー型ではありません。 色々試してみたのですが、全く分かりません。 是非、ご教授をお願い致します。

  • ACCESSのクエリで表示されるデータについて

    クエリで表示されるデータの範囲について教えてください。 <状況例> 例えばなのですが、取引先会社の管理データベースとして「テーブルA」と「テーブルB」があったとします。 「テーブルA]のフィールドは「会社ID」、「会社名」、「住所」とします。 「テーブルB]のフィールドは「連絡先ID」、「会社ID」、「担当者名」とします。 そして、「会社ID」をリレーションシップで繋いで、クエリで「テーブルA」「テーブルB」の全てのフィールドを表示したとします。 この時、「テーブルA」にデータが5つあり、「テーブルB」にはデータが2つしかなく、結果リレーションシップを通じて対をなすデータが2つしかない場合には、クエリでは2つしかデータが表示されないと思います。 <質問> クエリではリレーションシップで対をなさないデータは無効となるようですが、対をなさないデータも全てクエリで表示する方法はないのでしょうか。 上記例でいうと、「テーブルA」のデータ5件全てについて表示させたいのですが。もちろん、「テーブルA」のデータ中対をなしていないものについては、「テーブルB」のフィールド内容については「空白」での表示となりますが。

  • ACCESS テーブルの結合

    同じmdb内で複数テーブルがあります。(テーブル1から10まで)フィールド名はすべて同じです。それぞれのテーブルのIDは1からオートナンバーになってます。 【例】 テーブル1  フィールド名: ID A B C テーブル2   フィールド名:ID A B C  ・ ・ テーブル10   フィールド名:ID A B C  ひとつのテーブルで管理したいのですが・・・教えてください。

  • 複数行のグループ集計とカウント

    下記の内容のようにグループ化してその後さらにグループ化してカウントを取る方法をお教えください。出来れば一回の処理で終わる方法が知りたいです。 大変お手数ですがよろしくお願いします。 例 t_id  t1  t2  1   a  1  2   a  1  3   a  2  4   a  3  5   b  4  6   b  4  7  ETC 5 ※1行目がフィールド名で2行目以降がデータです 1.上記の例のテーブルのt2のフィールドをグループ化し同じ数値をひとまとめにします >SELECT * FROM テーブル名 GROUP BY t2; t_id  t1  t2  1   a  1  3   a  2  4   a  3  5   b  4  7  ETC  5 2.この状態でt1のフィールドをグループ化してt1のカテゴリーのカウントをとり以下のような感じの結果を出したいと考えています。  t1 Count  a   3  b   1  ETC  1 このような処理を表示させるようにするにはどのようにしたらよろしいのでしょうかお教えください。 環境はmysql5.0を使用しております。

    • ベストアンサー
    • MySQL
  • アクセス2000を使ってのデータ集計方法

    はじめまして、アクセス2000を使って支払テーブルを作成しました。フィールドは、日付 メーカーID 金額 現場名ID 勘定科目ID・・等です。 メーカと現場名と勘定科目はマスタテーブルを別に作って そこから参照させています。これにデータを打ち込んでいって月別金額集計と メーカ別金額集計と 現場名別金額集計と勘定科目別金額集計をさせたいのですが フォームとレポートに支払テーブルレコードを表示させて 合計金額を表示させるにはどのようにすれば良いでしょうか? 判りにくい説明ですが 4月分のデータを一覧表示させて合計金額を表示次に5月分のデータを一覧表示させて合計金額を表示と言う具合です

  • フォームから2つのテーブルにデータを書き込みたい

    Accessで T_aテーブルとT_bテーブルがありそれぞれのフィールドが以下のようになっているとします。 T_a:フィールド名 データ型    ID  オートナンバー型    商品番号 テキスト型 主キー T_b:フィールド名 データ型    ID  オートナンバー型 主キー    商品番号 テキスト型 このときフォームから入力したデータをそれぞれのテーブルの商品番号に追加したいのですがどのようにすればよいのでしょうか。  よろしくお願いいたします。

  • Accessでテキストフィールドの集計

    ちょっと特殊な集計をしたいのですが テーブルはID(数値)と 記号(テキスト)の2つから構成されています。 ID   記号 1   A1,B2 2   A2 3   A1,A3 4   B1 5   A3,B2,C1 このようにデータが入っている場合 以下のように集計をするにはどうしたらよいでしょうか? 記号  カウント A1   2 A2   1 A3   2 B1   1 B2   2 C1   1

  • テーブルの統合・日付別集計

    Accessを使ってあるデータの送信履歴を記録しており 日付別の統計を取りたいと考えています。 AテーブルとBテーブルは以下のような構造をしています。  [id]項目ID(数値型)  [senddate]日付を表すフィールド(日付/時刻型)  [endflg]終了フラグ(数値型) endflg=1を条件にして Aテーブル・Bテーブルを統合した日付別統計をとるには どのようなSQL文を書けばよいのでしょうか?

  • Excelの数値範囲を指定したクロス集計

    Excel2010です。 やりたいことは、 フィールドA(文字列)、フィールドB(文字列)、フィールドC(文字列)、フィールドD(数値)、フィールドE(数値)、というデータがあり、フィールドDの値を「1未満」「1以上10未満」「10以上30未満」「30以上」と範囲を分けて、フィールドA、B、Cのそれぞれの組み合わせにおけるフィールドDの合計値を求める ということです。 フィールドA="あ"且つフィールドB="イ"且つフィールドC="山"且つフィールドDが1以上10未満のレコードのフィールドEの合計値、というような全ての組み合わせです。 目標の形式としては、ピボットテーブルは、列にフィールドA、Bを、行にフィールドC、Dを設定します。この時、フィールドDのすべての値が羅列することになりますが、上記のように数値範囲を指定して集計したいです。 範囲指定してその合計値を出すにはSUMIFでできるようですが、ピボットテーブルと組み合わせて使えればいいのかなと思ってますが。。。やり方が分かりません もし、一発では無理というのであれば、先に別処理をすることで可能であればその方法でもいいですので、教えてください。

  • テーブルの数値をほかのテーブルに更新していくのには?

    OS:Windows Xp Access Version:Access 2002 お世話になります。 毎日、CSVファイルの成績表が取得でき、それをテーブルにインポート後、ほかのテーブルに数値を加算していきたいと思っております。 テーブルの構成が仮に、 Tインポート用テーブル 社員ID テキスト型←主キー 実績  数値型 とあり、この実績の数字を T実績テーブルにある 社員ID 実績 の"実績"のフィールドに加算していきたいと思っております。 インポートされた「Tインポート用テーブル」の全レコードは「T実績テーブル」に加算後、 消去します。 当方、SQL構文にはいまだに不慣れでありますので、更新クエリ、追加クエリでの方法があればありがたいです。 乱筆、乱文ですがよろしくお願いいたします。