• ベストアンサー

ユニオンクエリ?レポートにて1件のレコードを複数レコードとして表示。

レポートにて1件のレコードを複数レコードとして表示。したいです。 マスタというテーブルに時間1・結果1・時間2・結果2・時間3・結果3という項目があり、 これをクエリにて別々のレコードとしてレポートに表示したいのです。時間1・時間2・時間3すべて入っているものは3件として 時間1・結果1 時間2・結果2 時間3・結果3 時間1・時間2のみ入っているものは2件として。 ユニオンクエリというのを使うと出来そうですが、よく分かりません。 SQLビューにどのように書けばよろしいでしょうか? テーブルの構成は今から直すことは出来ない状態で…。

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

ご推測の通り、ユニオンクエリで対応できます。 基本的には、各レコードに対応する選択クエリに相当するSQL文を、 「Union」で結合するだけですので、覚えてしまえばそれほど 難しくはないかと思います。 1)値が重複するデータがひとつに集約されてよい場合: Select マスタ.時間1 As 時間, マスタ.結果1 As 結果 From マスタ Union Select マスタ.時間2 As 時間, マスタ.結果2 As 結果 From マスタ Union Select マスタ.時間3 As 時間, マスタ.結果3 As 結果 From マスタ; ※「Union」の後の改行は、クエリを閉じると自動で削除されます。 ※わかりやすさ優先(のつもり)で3つのSelect文の体裁を揃えましたが、  実際には2行目以降の「As 時間」「As 結果」は無視されます。 2)値が重複するデータも集約せずに表示する場合: Select マスタ.時間1 As 時間, マスタ.結果1 As 結果 From マスタ Union All Select マスタ.時間2 As 時間, マスタ.結果2 As 結果 From マスタ Union All Select マスタ.時間3 As 時間, マスタ.結果3 As 結果 From マスタ; 3)「マスタ」テーブルにレコードを特定できる「ID」などがあって、  それを同時に出力する場合: Select マスタ.ID As ID, マスタ.時間1 As 時間, マスタ.結果1 As 結果 From マスタ Union Select マスタ.ID As ID, マスタ.時間2 As 時間, マスタ.結果2 As 結果 From マスタ Union Select マスタ.ID As ID, マスタ.時間3 As 時間, マスタ.結果3 As 結果 From マスタ ・・・以上です。 なお、これらのユニオンクエリを基にしてテーブル作成クエリを組むことも可能ですので、 あわせて参考までに。

ajisaika
質問者

補足

ありがとうございます。 As 時間 の部分は任意でつけてよいのですよね? クエリ式 マスタ.時間1 as 時間の構文エラー:演算子がありませんとでます(>_<)

その他の回答 (1)

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

No.1です。 > As 時間 の部分は任意でつけてよいのですよね? はい、基本的には大丈夫です。 (但し、「+(半角プラス)」単独など、一部の文字は使用すると  エラーになるので、完全に任意というわけではありません) > 演算子がありませんとでます(>_<) どういうふうにしたときにそのエラーが出るか、あたりをつけて 確認したところ、「As」の前後のスペースのどちらか一方でも 全角にしてしまうと、Asが演算子としてではなく、前後と連続した 文字列としてして認識されてしまい、ご質問のエラーとなることが わかりました。 ですので、全角スペースを半角スペースに修正していただけば、 ご質問のエラーは出なくなると思います。 また、補足欄の文を見ると、「マスタ」の後のピリオドも全角 となっているようなので、こちらも半角にしておいて下さい。 (このままだと「マスタ.時間1」がパラメータとして要求される  ことになりますので・・・)

関連するQ&A

  • ユニオンクエリをデザインビューで開くには?

    アクセス2010です。 T_テーブル1とT_テーブル2があり、 どちらもフィールド1に文字が入っています。(テキスト型です) クエリのSQLビューで SELECT * FROM T_テーブル1 UNION ALL SELECT * FROM T_テーブル2; として保存したらユニオンクエリが出来上がったのですが、 これをクエリのデザインビューで見るにはどうすればいいですか? 以前のバージョンならユニオンクエリをデザインビューで見れました。 でもやり方を忘れました。 該当のクエリをアクティブにしてデザインビューを選択しても SQLビューで開いてしまいます。

  • ユニオンクエリについて

    複数のファイルにあるテーブルを使って、ユニオンクエリを作りたいと思っています。 他のデータベース内のテーブルを参照して、ユニオンクエリを組めるものでしょうか?やはり同じファイルにあるテーブル同士でなければだめですか? こちら初心者で、聞き方もおかしいかもしれませんが、よろしくお願いいたします。

  • Access 2000、ユニオンクエリーがどうしても出来ない!

    初歩の質問ですが、ユニオンクエリーが出来ません。 やりたい事は非常に単純です↓↓ 1:テーブル1、テーブル2、テーブル3があります。 2:各テーブルのデータ内容は様々ですが、共通項目として「品番」を持っています。但しテーブル1は「製品名」、テーブル2と3は「品番」という項目名になっています。 3:各テーブル内に、品番が幾つ入っているか、集計クエリでカウントします。項目名が違うので以下のように処理しました。  <テーブル1の場合>    フィールド|品番のカウント: 製品名|タイトル: "テーブル1"    テーブル |テーブル1     集  計 |カウント  <テーブル2(或いは3)の場合>    フィールド|品番のカウント: 品番|タイトル: "テーブル2"    テーブル |テーブル2     集  計 |カウント 4:3の集計クエリーを繋ぎ、テーブル1~3の品番件数を一気に表示させたい  <ユニオンクエリの内容>     SELECT *     from Q0_カウント_テーブル1     UNION select *     from Q0_カウント_テーブル2     UNION select *     from Q0_カウント_テーブル3; 5:私の予想としてはこんな風↓↓出てくるはずだったのですが・・・     品番のカウント| タイトル     ------------------------------        30   | テーブル1        20   | テーブル2        23   | テーブル3  6:結果は「From句の間違いです」と出ます。他の質問も見ましたが、自分のSQLのどこを直せば良いのかわかりません・・・教えてください!

  • ユニオンクエリで0と表示される。

    教えてください。 4つのテーブルをユニオンクエリでひとつにしたく以下のようにSQLに書きました。 SELECT ID AS フィールド1 ,No AS フィールド2, Remark AS フィールド3 FROM テーブル1 UNION ALL SELECT ID,No,Remark FROM テーブル2 UNION ALL SELECT ID,No,Remark FROM テーブル3 UNION ALL SELECT ID,No,Remark FROM テーブル4 フィールド2のNOには数字が入っているのですがフィールド2の列にはすべて0と表示されて数字がででてきません。ID(オートナンバー型)とRemark(短いテキスト型)はちゃんと表示されます。もとのテーブル1と2のNoは数値型 テーブル3と4のNoは短いテキスト型です。なにが原因でどうしたら数値が表示されるようになりますか?

  • ユニオンクエリの結果をテーブルに書き出したい

    お世話になります。 Access2000で作成しています。 テーブル作成クエリと同じような形で、 ユニオンクエリの結果をテーブルに書き出したいのですが、 どのようにすればできるでしょうか? SQLの形を直接いじるような方法でも結構ですので 宜しくお願い致します。

  • ユニオンクエリ

    今 Accessを勉強中です。 ユニオンクエリとは、複数のテーブルをひとつに・・・・ という説明を見たのですが、具体的にはどんな時に利用するのでしょうか? 単純にたとえば1年生の名簿のテーブルを作成し、2年生のテーブル、3年生のテーブルを作成し、学年全部の名簿をユニオンクエリを利用するようなもの? でもこれって追加クエリでもできそうですよね? 簡単で具体的な例で教えていただけませんでしょうか?

  • ユニオンクエリで複数ファイルをまとめるには

    ★はじめまして 会社でアクセスを使用している初心者です。 社員データーをアクセスファイルで管理しています。 10人が一つファイルを持って使用しています。 なので、ファイル数は10です。 フィールド(項目)数が128です。 全てのファイルは同じ項目です。 【問題】 (1)社員データーを検索する際に、全てのファイルを開いて検索すると非常に時間がかかります。 (2)社員データーをCSVでエクスポートして、EXCELで集計・分析する際に全てのファイルからエクスポートすると時間がかかります。 【対策】 (1)全てのファイルをまとめようと まとめファイルを作成して 全てのテーブルをリンクして(10ファイル) ユニオンクエリでまとめようと思いました。 【結果】 エラーです。 『定義されているフィールドが多すぎます』と表示されます。 【教えてください】 (1)フィールドが多すぎるとユニオンクエリは使用できないのですか? (2)他に全てのファイルをまとめる方法はないのでしょうか? ご教授お願いします。

  • access2013クエリのレポート表示方法

    office access 2013でレポート(結果報告書のようなもの)を作成しようとしています。 テーブルからクエリでレポートに表示したい項目を選択しました。 その選択項目のうち、空欄のものは省いた状態で印刷できるよう設定したいのですが、どうすればよいでしょうか。

  • ACCESS ユニオンクエリはデータ編集ができない

    教えてください。初心者なので基本的なことで大変お恥ずかしいのですが・・・。 ACCESSでユニオンクエリを作成し、検索の結果としてフォーム上にデータが閲覧できるシステムを作りました。ユニオンクエリの元となる、テーブルは4つあります。 しかし、フォーム上からも、作成したクエリのデータシートビューからもデータの編集ができません。 クエリというのは、編集ができないという認識でいいのでしょうか。 データを編集するにはテーブルとしてインポートしなおして、作業するしかないのでしょうか? 何か良い方法があれば教えて下さい。

  • ユニオンクエリで繋げられるテーブル(クエリ)の上限の個数は?

    access2003です。 ユニオンクエリで繋げられるテーブル(クエリ)の上限の個数はいくつなんでしょうか? またSQL文は1024文字越すとエラーになるのでしょうか? よろしくお願い致します。