dポイントプレゼントキャンペーン実施中!

初歩の質問ですが、ユニオンクエリーが出来ません。
やりたい事は非常に単純です↓↓

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のどこを直せば良いのかわかりません・・・教えてください!

A 回答 (3件)

基本に立ち返って、「From句の間違いです」のメッセージから、くどいですが、本当にテーブル・クエリ名の指定は間違いないですよね。

(例えば「ー(長音)」等)
日本語(全角)の名前を使用すると誤りに気が付き難いです。
個人としては、全角の名前が使えないフリーのDBも存在するので、全角を名前に使うのを控えてます。
「Access 2000、ユニオンクエリー」の回答画像3
    • good
    • 0

「From句の間違いです」と出ているのなら、テーブル名が間違っている可能性はないですか?



集計クエリーでテーブルを作成してからユニオンクエリを実行しているのでしょうか。
ユニオンクエリの中でフィールド名を変えてやれば、1回のクエリだけでも可能です。

SELECT COUNT(製品名) AS "カウント", "テーブル1" AS タイトル
FROM テーブル1
UNION
SELECT COUNT(品番) AS "カウント", "テーブル2" AS タイトル
FROM テーブル2
UNION
SELECT COUNT(品番) AS "カウント", "テーブル3" AS タイトル
FROM テーブル3

この回答への補足

回答ありがとうございます。
>集計クエリーでテーブルを作成してからユニオンクエリを実行しているのでしょうか。
違います~。今気付いたのですが、私の書き間違いでした!
実際は、テーブル1~3まで、集計クエリーを3つ作って、最後にその3つのクエリーをユニオンクエリーでつないでいます。(最終的に4つクエリーを作っています)

何度も確認したのですが、テーブル名もSQLのスペルも間違っていないんです。どうしてもわからないので、本日は残業を切り上げ帰宅してしまいました。
でも、AS"カウント"を使うと出来そう・・・実はAS~を使うらしい?という説明も読んだのですが、PC用語は難しくて全然意味がわからなかったんです。
でも実際に項目名で教えていただいたので、なんか出来そうな気がしてきました!
明日会社に行ったら、早速試してみます!ありがとうございました!

補足日時:2009/09/03 21:28
    • good
    • 0

ユニオンクエリでは、項目名が全て一致していなければなりませんが、そのあたりは問題ないですか?

この回答への補足

ご質問ありがとうございます。
3つの集計クエリ内には、項目は2つしかありません。「品番のカウント」と「タイトル」です。
質問に書きましたように、テーブル1のみキーになる項目の項目名が「品番」ではなく「製品名」なので、集計クエリーの時に項目名を「品番のカウント」と変えています。(わかりにくい説明ですね、申し訳ないです)
結果として見たいのは、非常にシンプルな形なのですが・・・

    品番のカウント| タイトル
    ------------------------------
       30   | テーブル1
       20   | テーブル2
       23   | テーブル3 

こーゆーのです。↑
何が間違ってるのかさっぱりわかりません・・・よろしければアドバイスお願いいたします。

補足日時:2009/09/03 15:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!