• 締切済み

Accessでの自己結合?

mrayu_2001の回答

回答No.3

同一のテーブルに目標と実績の2レコード持つことは、データベースの構造上好ましくありません。 RDBでデータ正規化する時は次のように持つことになると思います。  基本表(実績)   くま、78、×、80、○  基本表(目標)   くま、85、75  仮想表(クエリーでの射影)   くま、85、78、×、75、80、○ しかし、この様にデータをこの様に持たなくても NO2さんの回答の様に1レコード上で、目標、実績を持ったほうがよいのではないかと思います。 ちなみに質問者様の基礎データの形でAccessで得る方法として (1)くま、85、78、×、75、80、○の基本表を作る。 (2)追加クエリーで目標を追加する。条件="目標" (3)更新クエリーで実績を更新する。条件=key一致 and "実績" (4)更新クエリーで判定し更新する。 =結果の例レコードを作る= (5)追加クエリーで実績を追加する。条件="実績"  追加の際、判定○×も項目移送します。 (6)追加クエリーで目標を追加する。条件="目標"  追加の際、判定○×も項目移送します。 以上で実現できると思います。

関連するQ&A

  • グループの数を取得したい

    NO 科目 -------  1 国語  2 英語  3 算数  4 国語  5 国語  6 算数 の様なテーブルがあった場合、科目でグループ化した時のグループ数を取得したい。 上の例だと、科目は、「国語、英語、算数」なので  3 のカウントを返したい この場合の、SQL文が分かりません。 分かる方、よろしくお願いします。

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

    下の2つのようなテーブルからクエリを作成しています。 (1)データマスタ(テーブル) 出席番号   入力日  入力時間  国語  算数  社会 001        6/4    14:00    2     3    2 001        6/4    14:00    2     3    2 002        6/4    15:00    3     2    1 002        6/4    15:00    3     2    1 003        6/4    16:00    4     2    0 003        6/4    16:00    4     2    0 003        6/4    17:00    0     0    2 003        6/4    17:00    0     0    2 (2)クラスマスタ(テーブル) 出席番号   学年   組 001        1    2 002        1    3 003        2    1 クエリを作成して、抽出したいデータ 1)重複したデータを非表示にしたい *レコード削除はしたくない 2)〔合計〕というフィールドを作って(国語+算数+社会)の和を表示したい 3)出席番号003のように、一日に複数回データ入力している者がいるので その者のデータは一行で和を表示させたい 4)001と002は1年生なので、1年生というくくりで各教科の和を表示させたい 私が理想としている、クエリを実行した結果 出席番号   入力日  学年  組  国語  算数  社会  合計 001        6/4    1    2   2     3    2    7 002        6/4    1    3   3     2    1    6                          5     5    3    13 *1学年の和 003        6/4    2    1   4     2    2    8 私が現在作成しているクエリの実行結果 出席番号   入力日  学年  組  国語  算数  社会  合計 001        6/4    1    2   2     3    2    7 002        6/4    1    3   3     2    1    6 003        6/4    2    1   4     2    0    6 003        6/4    2    1   0     0    2    2 1)の重複データ非表示はグループ化で用件を満たしました。 2)〔合計〕というフィールドを作っての和は、クエリで演算子を使って要件を満たしました。 合計フィールドに(国語+算数+社会)と設定して。 【質問】 3)出席番号003の、一日に複数回データ入力している者を一行で表示させることが出来ません。 入力時間の違うデータが複数あるので、003が上のように複数行で表示されてしまいます。 理想のように1行で表示するにはどうしたらよいでしょうか。 4)の1年生全組の和(ここでは1年2組と3組の各教科と合計の和)を表示させるには、 どのようにしたらよいでしょうか。 以上2点、お分かりになる方がいましたらアドバイスお願いしたいと思います。

  • Access アクセスについてお伺いします。

    Access アクセスについてお伺いします。 テーブルで作成したデータをレポートで表示する際にマルで囲みたい場合、 どのようにすればよいのでしょうか!? 例 テーブルでフィールド名学年とする   内容に1年生、2年生、3年生と入力していく      レポートではラベルで1年生、2年生、3年生と作成しておき、   テーブルで1年生と記入したらレポートでは1年生の箇所に○がかかるようにしたいのですが・・・ 

  • VBScriptで結果取得のやり方知っている方教えてください。

    VBScriptで結果取得のやり方知っている方教えてください。 MSSQLに登録してあるテーブルtbl_tensuに no name tensu_kokugo tensu_sansu ------ ----------- ------------ ----------- 1 相澤 100 98 2 山本 75 80 3 澤口 70 93 4 小林 54 65 というデータが登録してあります。 これをvbscriptを使ってメッセージボックスに 相澤さんは国語合格、算数合格。 井上さんは国語合格、算数不合格。 上原さんは国語不合格、算数合格。 小川さんは国語合格、算数不合格。 加藤さんは国語不合格、算数不合格。 という風に表示したいです。 これは○○.vbsを実行し60と入力すると上記の結果が表示されるようになります。 この60とは合格点60点にということになります。 自分でやってもどうしてもどちらとも不合格にしかならないのです。 よければ教えていただけたらうれしいです。

  • Oracle8,9で取得したデータを結合するには?Oracleで取ったデータをExcelに出力するには?

    こんにちは。PRGで行き詰まってしまい皆様のお知恵を借りたいと思い投稿しました。 まだOracle初心者のへっぽこシステム管理ですが、お上よりDB(Oracel)からある条件でデータを取って来て Excelに出力してほしいと頼まれました・・ 生産実績管理サーバー(Oracel9)の実績テーブルには、 生産日|工場No.|商品名|機械No.|生産数| 4/1|100|ケーキ|A|100| 4/1|100|ケーキ|A|120| 4/1|100|チョコ|A|150| 生産計画目標サーバー(Oracel8)の計画目標テーブルには、 機械で出来る計画能力が入っております 工場No.|商品名|機械No.|計画生産数| 100|ケーキ|A|150| 100|チョコ|A|150| 上記のテーブルのデータをVBでoo4oで接続して、Excelに出力したのです。 Excelへの完成一覧表は、条件で生産日を4/1で、工場を100で、 商品名|機械No.|生産数|計画生産数| ケーキ|A|220|150| チョコ|A|150|150| にしたいのです。 【VB】 Set oraSes = CreateObject("OracleInProcServer.XOraSession") Set ora9 = oraSes.OpenDatabase("実績","実績/実績”,0&) Set ora8 = oraSes.OpenDatabase("計画","計画/計画”,0&) strSQL1 = "select 商品名,機械No.,Sum(生産数) from 実績 " & _ "where 生産日='4/1' and 工場名='100' " "group by 商品名,機械No. order by 商品名,機械No." Set oraDs9 = ora9.DbCreateDynaset(strSQL1,4&) strSQL2 ="select * from 計画目標" Set oraDs8 = ora8.DbCreateDynaset(strSQL2,4&) Excel起動(省略) Excelに書き込む・・・・ これが現在までのPRGなのですが、oraDs9で取得して来た商品名と機械No.をKeyにして Oracel8の計画目標テーブルから計画生産数を取得、それを結合して、一気にExcelに書き出したいのです。 oraDs9の商品名と機械No.を配列変数に入れて、Doでora8へSQL文を回すようなやりかたはあまりしたくないのです。 Oracleで一気に検索して、上記の欲しい一覧表を取得できたら最高なのですが・・・・ またExcelに書き出す方法は、ExcelでoraDs8をDo~Loopで書き出していくしか無いのでしょうか? 書き出すサンプルソース・参考になるようなものがありましたら教えて下さい。 もしOracelで、一気にExcelに書き出せる方法がありましたら教えて下さい。 色々と聞いてしまって申し訳ございませんが、何卒宜しくお願いします。

  • accessで画像一覧

    画像一覧をaccessでやろうとしています。 OLEを使うと画像パスが取得できないのでテーブルに 画像のファイルパスを格納してからフォームで画像表示を 行いたいと思います。 フォームは表形式で、画像パスをテーブルから読み込み 表示させたいのですが、コードで非連結OLEに画像パスを 代入すると一番上のと同じ画像がずらっと表示されて しまいます。 良い案が浮かびません,どなたか助言お願いします.

  • 2テーブルが同じユーザテーブル参照するときの結合

    2つのテーブルで、同じユーザテーブルを参照してデータ取得したいのですが、 どうやって結合すれば良いのでしょうか? ■概要 ・ユーザがアクションに挑戦すると、結果を表示 ・その際、「アクション作成者」と「アクション挑戦者(ユーザ)」を表示したい ※「作成者」「挑戦者」は、同じ「user」テーブルで管理したい ■3テーブル ・「result」「action」「user」 ・「result」「action」テーブルには、それぞれ「user_id」カラムがある ・「result」テーブルには、「action_id」カラムがある。1対多? ■知りたいこと ・一気にまとめて一覧として取得する方法 ・最終的に「結果」と、「result」「action」それぞれに対応した「user」テーブルの「name」カラムを取得したい ■試してみたこと ・これだと「挑戦者名」が取得できない       SELECT *        FROM result r         LEFT JOIN `action` a ON r.`action_id` = a.`id`         LEFT JOIN `user` u ON r.`user_id` = u.`id` ・これだと「挑戦者」のユーザIDしか取得できない       SELECT *,a.user_id AS actionuser_id        FROM result r         LEFT JOIN `action` a ON r.`action_id` = a.`id`         LEFT JOIN `user` u ON a.`user_id` = u.`id`

    • ベストアンサー
    • MySQL
  • 同一列内のセルを結合して表示したい

    DBから取得したデータで同じ項目データはテーブル で表示する際に、同一列内のセルをrowspanで結合し て見栄えをよくして表示させたいのですが、どうした らいいでしょう? http://www.atmarkit.co.jp/fdotnet/dotnettips/092joincells/joincells.html と同じことをPHPで実現させたいのです。 どなたかご教授願います。

    • 締切済み
    • PHP
  • Access2007 集計レポートについて

    Access2007 集計レポートについて質問させて下さい。 営業マンが全部で17名、それぞれのグループが5つに 分かれています。 集計内容は、各17名とそれぞれが所属するグループ5つ、 これが13のブランド別での内容となります。 各担当にはそれぞれ月次での目標数と金額が、 集計時の実績数と実績金額を表示させたいと考えています。 現在の方法はレポートのフッター部分を使用して 上記下記項目を設定し集計しようとしているのですが、 フィールド数が255を超えていますとのメッセージが出てしまい、 先へ進むことができません。 1人の営業のレポートは上記13のブランドに対し 目標と実績が発生しますので26のフィールド?が発生してしまいます。 その26のフィールド×22=572のフィールド?が必要となってしまいます。 目標にかんしては月次での目標テーブルから該当データを持ってくる様に しており、実績が基幹システムからのデータリンクにて集計する形を 取っていますが、最終的に1つのレポートで作成したいと思っています。 今まではExcelで手入力で作成していたのですが、Accessを使用できる 環境があり、合理的に数字の集計ができればと思い作成していたのですが 255の壁にぶち当たってしまいました。 何か良い方法があれば教えて頂きたいと思います。 尚、当方まだ初心者レベルとお考え下さい。 宜しくお願い致します。

  • 参照セルを条件付き書式で・・・

    お世話になってます。 さっそく本題なのですが、 「国語」 「算数」 「英語」 「理科」 「社会」の各シートがあり、各シートには、生徒名とそれぞれのテストの点があり、評定A,B、Cが計算されているものとします。 例 「国語」   1   2  3 A伊藤  90  A B大久保 40  C  C板垣  70  B それぞれの成績を 一覧表にまとめたのですが、   1  2  3 A   「国語」「算数」 B伊藤   A  B C大久保  C  B この一覧表の成績(A2やB2)は「国語」や「算数」のシート から=国語!A1のように参照?引用?しています。 この時、条件付き書式で成績がAの評価のみを色を変えて表示することは可能でしょうか? もしほかの方法で可能な方法があれば教えてください。 よろしくお願いします。