- ベストアンサー
ユニオンクエリについて
お世話になります。 クエリAとクエリBがあり、ユニオンクエリにて両クエリを結合させたいと思っております。 しかし、クエリBにしかないフィールド(test)がある為、「列数が一致しません」となってしまいます。 このような場合、一般的にはどのようにして対処するのでしょうか。 恐らくクエリAにtestというフィールドを仮想的に?追加するのだと思いますが、やり方がわかりません。 ご教授の程、宜しくお願い致します。
- naoto0216
- お礼率73% (488/667)
- SQL Server
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
クエリA側にダミーの項目を1つ増やすのであれば以下の様にすればよいと思います。 クエリA select A.Col1 ,A.Col2 ,A.Col3 from A クエリB select B.Col1 ,B.Col2 ,B.Col3 ,B.Col4 from B としてUNIONするとこうなります。 select A.Col1 ,A.Col2 ,A.Col3 ,'' AS Col4 from A union all select B.Col1 ,B.Col2 ,B.Col3 ,B.Col4 from B
関連するQ&A
- ACCESSユニオンクエリでORDER BYエラー
お世話になります。 クエリAとBがあり、それぞれのクエリでは製品コードの先頭6文字(製品コード先頭6文字: Left([マスター]![製品コード],6))の昇順で並び替えしてます。 個々のクエリでは問題なく並び替えされるのですが、この二つのクエリをユニオンクエリで結合するとエラーとなってしまいます。 『ORDER BY 式 (Left([マスター]![製品コード],6))にクエリに選択されていないフィールドが含まれています。ORDER BY 式 (Left([マスター]![製品コード],6))に含めることができるのは、最初のクエリで要求されたフィールドだけです。』 となります。 調べたところ、『ユニオン クエリで使用されるテーブルにおいて、1 つ以上のフィールド名を変更した場合に発生します。 』ということでした。 http://support.microsoft.com/kb/282322/ja 確かに、それぞれのクエリでフィールド名を変更しているのですが・・・このような場合、どのようにすればうまく結合できるのでしょうか。それとも不可能なのでしょうか。。 以上、よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- Access2010「クエリが複雑すぎます」
お世話になります。 ユニオンクエリAがあり、そのクエリを使用してクエリB(テーブルや別のクエリとも紐付け)を作成しました。問題なく抽出できます。 <クエリB> ユニオンクエリA ----→ クエリX | ---→ テーブル1 | ---→ テーブル2 | ---→ テーブル3 新たにユニオンクエリAを使って、クエリCを作成したところ「クエリが複雑すぎます」と表示されてしまいます。いくつかのテーブル/クエリと紐付けていたので、一つずつ取っていったところ、最終的にはユニオンクエリA一つでもエラーが出てしまいます。単純な選択クエリです。 クエリBは同じユニオンクエリAを使い、複数のクエリとテーブルとを紐付けているのにも関わらずエラーとなりません。。 どのようなことが考えられますでしょうか。 Accessを起動し直したり、端末自体も再起動しましたが状況変わらずでした。 また、ユニオンクエリA単体を開いても問題無く抽出されます。 ご教授の程、宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- UNIONとUNION ALLの違いについて
お世話になります。 一応違いについては把握しておりますが、念のため 確認させて下さい。 以下のクエリがあります。 クエリA 受注日 型番 数量の合計 2015/01/01 AAA 10 2015/01/01 BBB 5 クエリB 受注日 型番 数量の合計 2015/01/01 BBB 5 2015/01/01 CCC 10 2015/01/02 CCC 5 クエリA UNION クエリB の場合は、 受注日 型番 数量の合計 2015/01/01 AAA 10 2015/01/01 BBB 5 2015/01/01 CCC 10 2015/01/02 CCC 5 となると思ってます。 ※型番Bの重複がマージされる クエリA UNION ALL クエリB の場合は、 受注日 型番 数量の合計 2015/01/01 AAA 10 2015/01/01 BBB 5 2015/01/01 BBB 3 2015/01/01 CCC 10 2015/01/02 CCC 5 となると思ってます。 ※重複があっても単純にくっつける。 あってますでしょうか? で、例えば、テーブルA及びBにそれぞれ「ライン」という項目があり、 テーブルAの方は、L01、L02となっており、テーブルBの方は LL01、LL02となっていたとしたら(要するにテーブルAのラインと テーブルBのラインが重複することが無い)、UNIONでも UNION ALLでも、どちらでも結果が同じになる・・・という ことであってますでしょうか? ご教示の程、宜しくお願い致します。
- 締切済み
- その他(データベース)
- ACCESSクエリでの結合の仕方
ACCESS 2003を使用しています。 テーブルA テーブルB テーブルC の3テーブルでクエリを作っています。結合的には・・・ テーブルAのフィールドX⇔テーブルCのフィールドX テーブルBのフィールドX⇔テーブルCのフィールドX です。 これで3テーブルに共通する一致データのみ抽出はできるのですが、 3テーブルに共通する一致データに加えて、テーブルAとテーブルBの不一致データ(テーブルCに対する)も一緒に抽出できるようにしたいのです。 2テーブルだけの結合であれば、結合プロパティを、 テーブルAのフィールドX⇒テーブルCのフィールドX のようにすることで実現できるのですが、3テーブルの結合の場合、どのようにすればよいでしょうか? テーブルAのフィールドX⇒テーブルCのフィールドX テーブルBのフィールドX⇒テーブルCのフィールドX のようにしてみましたが、「あいまいな外部結合が含まれているので、SQLステートメントを実行できません。云々。。。」と警告エラーがでてしまいます。 どなたが、ご教授いただけると助かります。 ご面倒ですが、よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- ACCESSクエリでの結合の仕方・・・SQL文かも
ACCESS 2003を使用しています。 テーブルA テーブルB の2テーブルでクエリを作っています。 結合的には・・・ テーブルAのフィールドX ⇔ テーブルBのフィールドY です。 これで2テーブルに共通する一致データのみ抽出はできるのですが、 2テーブルに共通する一致データに加えて、 2テーブルの不一致データも一緒にクエリ表示されるようにしたいのです。 欲しいのは抽出イメージは、以下のような感じのクエリ結果です。 テーブルA:フィールドX|テーブルBのフィールドY a |(空) (空) |b c |c d |(空) (空) |e f |f g |(空) h |h おそらく、SQL文を書く必要があるとは、想像できるのですが・・・ どなたか、ご教授いただけると助かります。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- アクセス クエリについて2点お教え下さい。
A(1000件)とB(500件)の2つのテーブルがあります。 この2つをキーでつなぎ、Aの全てのデータを表示し、 2つの一致したデータのみにBの●・△・■のフィールドを追加したい。 【質問1】 2つを繋ぐ完全一致のキーがありませんので まずは電話番号で確認し、その後住所、その後名前と・・・ 最終的にはこの3つの内ひとつでも一致したものにBのフィールドを 追加したいのですが、どのようにするのがベストでしょうか? 【質問2】 ABのテーブルどちらにも重複したデータが含まれている場合 2つを繋ぎ“Aの全てのレコードとBの同じ結合フィールドのレコードだけを含める” にチェックを入れてもAの1000件を超えて表示されます。 通常、“Aの全てのレコードとBの同じ結合フィールドのレコードだけ”なので 表示されるレコードは1000件ですよね? 重複データを削除する以外に1000件で表示する方法はないのでしょうか? よろしくお願い致します。
- ベストアンサー
- その他MS Office製品
- アクセス2007のクエリについて
アクセス2007のクエリを作成しているのですけど、テーブルを追加してフィールドを配置して実行すると 例 店名 A店 A店 A店 A店 A店 B店 B店 B店 B店 B店 というような感じになってしまいます。なぜでしょうか?ご教授お願いします。
- ベストアンサー
- オフィス系ソフト
- ユニオンクエリで複数ファイルをまとめるには
★はじめまして 会社でアクセスを使用している初心者です。 社員データーをアクセスファイルで管理しています。 10人が一つファイルを持って使用しています。 なので、ファイル数は10です。 フィールド(項目)数が128です。 全てのファイルは同じ項目です。 【問題】 (1)社員データーを検索する際に、全てのファイルを開いて検索すると非常に時間がかかります。 (2)社員データーをCSVでエクスポートして、EXCELで集計・分析する際に全てのファイルからエクスポートすると時間がかかります。 【対策】 (1)全てのファイルをまとめようと まとめファイルを作成して 全てのテーブルをリンクして(10ファイル) ユニオンクエリでまとめようと思いました。 【結果】 エラーです。 『定義されているフィールドが多すぎます』と表示されます。 【教えてください】 (1)フィールドが多すぎるとユニオンクエリは使用できないのですか? (2)他に全てのファイルをまとめる方法はないのでしょうか? ご教授お願いします。
- ベストアンサー
- その他(データベース)
- MySQLのクエリの質問です
テーブルAにフィールドBとフィールドCがあります。 phpmyadminを使って、フィールドBの値が一致するが、フィールドCの値が不一致のレコードを検索したいと思っています。 このような場合はどのようなクエリを書けばよろしいでしょうか? よろしくお願いいたします。
- ベストアンサー
- MySQL
- Accessのユニオンクエリーで3つのクエリを集計
Accessのユニオンクエリーで3つのクエリを集計したいのですが Aクエリ 氏名 役員名 就任月 任期 山田 会長 24 1 田中 副会長 24 1 Bクエリ 氏名 役員名 就任月 任期 山田 副会長 12 0 田中 理事 24 1 Cクエリ 氏名 役員名 就任月 任期 山田 会長 24 1 田中 副会長 24 1 結果 氏名 役員名 就任月 任期 山田 会長 48 2 山田 副会長 12 0 田中 副会長 48 2 田中 理事 24 1 このような結果を得ることは出来ますでしょうか? SELECT [氏名], [役員名],[就任月],[任期] FROM [Aクエリ名] UNION SELECT [氏名], [役名],[就任月],[任期] FROM [Bクエリ名] UNION SELECT [氏名], [役名],[就任月],[任期] FROM [Cクエリ名]; このように記述すると 氏名 役員名 就任月 任期 山田 会長 24 1 山田 副会長 12 0 山田 会長 24 1 田中 副会長 24 1 田中 理事 24 1 田中 副会長 24 1 このような結果になってしまうのですが・・
- ベストアンサー
- その他(データベース)
お礼
早速のご回答ありがとうございます。 教えて頂いた通りにやってみたのですが、ユニオンクエリとする以前に「SELECTステートメントが間違っている予約語や引数を含んでいるか、区切り記号が正しくありません。」と表示されてしまいます。。 クエリAのSELECTの最後に今回追加したいtestを下記のように追加しました。 SELECT ・・・・・, '' AS test
補足
再度確認したところ、うまくいきました。 ありがとうございました。