ACCESSユニオンクエリでORDER BYエラー

このQ&Aのポイント
  • クエリAとBで製品コードの先頭6文字で並び替えるが、ユニオンクエリで結合するとエラーになる
  • ユニオンクエリで使用されるテーブルでフィールド名を変更した場合にエラーが発生する
  • どのようにすればうまく結合できるのか、不可能なのか
回答を見る
  • ベストアンサー

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 確かに、それぞれのクエリでフィールド名を変更しているのですが・・・このような場合、どのようにすればうまく結合できるのでしょうか。それとも不可能なのでしょうか。。 以上、よろしくお願い致します。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

SELECT 標準コード.ID, 標準コード.地域コード, Left([地域コード],2) AS ひだり FROM 標準コード union all SELECT 標準コード.ID, 標準コード.地域コード, Left([地域コード],2) AS ひだり FROM 標準コード ORDER BY Left([地域コード],2); ならエラーになりますが これを ORDER BY Left([地域コード],2); ↓ ORDER BY ひだり; ならエラーにはなりませんでした。

naoto0216
質問者

お礼

ご回答ありがとうございます! また、お返事が遅くなってしまい申し訳ございません。 当該フィールドを並び替えすると、ORDER BY Left([マスター]![製品コード],6) となりますが、ここを単純に ORDER BY 製品コード先頭6文字 というようにフィールド名を指定することにうまくいきました。 ・・・って、後追いになってしまいましたが、nicotinismさまのご回答通りです。 ありがとうございました。

関連するQ&A

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

    お世話になります。 クエリAとクエリBがあり、ユニオンクエリにて両クエリを結合させたいと思っております。 しかし、クエリBにしかないフィールド(test)がある為、「列数が一致しません」となってしまいます。 このような場合、一般的にはどのようにして対処するのでしょうか。 恐らくクエリAにtestというフィールドを仮想的に?追加するのだと思いますが、やり方がわかりません。 ご教授の程、宜しくお願い致します。

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

  • ユニオンクエリで開いたクエリは修正することはできないのでしょうか?

    ユニオンクエリで開いたクエリは修正することはできないのでしょうか? 新たにクエリ上で作ったフィールドではなく、元々テーブルにあるフィールドの情報を変更したいのですができません。 これを回避する方法はありますか?(アクセス2003です) よろしくお願い致します。

  • ユニオンクエリから普通のクエリに変化

    フィールド数もフィールド名も全て同じにしたクエリを使用してユニオンクエリにしたところ 最初はマルが二つ重なったユニオンクエリマークでデザインビューでの編集ができなかったのに いつの間にか四角が二つ重なった普通のクエリマークになってデザインビューでの編集が可能になっています。 なぜでしょうか? ユニオンクエリではなくなってしまったのでしょうか? よろしくお願いします。

  • アクセスのクエリの作り方

    初心者なので教えてくださいませんか? アクセスでテーブルを複数作成して、それをクエリで結合するときに、どのテーブルからどのフィールドを選べばいいのかわかりません。 例えば・・・ 売上テーブル:NO 売上日 商品コード 数量 商品テーブル:商品コード 商品名 単価 この二つのテーブルを結合するクエリを作ります。 NO 売上日 商品コード 商品名 単価 数量 上記のフィールドを使用したいのですが、このとき、商品コードをどちらのテーブルのを使ったらよいのでしょう。 その判断は何からしたらよいのでしょうか。 うまく説明できているかわかりませんが、よろしくお願いします。

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

    顧客管理作成中です。 テーブル:顧客dataの項目(フィールド名)に 顧客名をはじめとして、 入金予定日,入金予定額,入金日,入金額,クレジット入金日,クレジット入金額とあります。 それぞれ、日付が違うのですが、日々の流れをチェックできるよう、 日付でまとめたいのです(日々の金額は日計) 希望の形は 日付 入金予定額   入金額   クレジット入金額 11/1  11/2 11/3   ・   ・   ・ _____________________ 月合計 _____________________ 全体合計 まず、グループ化したクエリを3つ作り、その後 ユニオンクエリを作って見ましたが、合計の作り方がわかりません。 ★作成状況★ ■グループ化した3つのクエリを作成 (1)Q名・支払予定金額(入金予定日,入金予定額の合計) (2)Q名・入金     (入金日,入金額の合計) (3)Q名・クレジット   (クレジット入金日,クレジット入金額の合計) ■ユニオンクエリ SELECT 日付,支払予定金額の合計,0 as 金額の合計,0 as クレジット入金額の合計 FROM 支払予定金額 UNION SELECT 日付,0 as 支払予定金額の合計,金額の合計,0 as クレジット入金額の合計 FROM 入金 UNION SELECT 日付,0 as 支払予定金額の合計,0 as 金額の合計,クレジット入金額の合計 FROM クレジット; はじめて、ユニオンクエリを使ったので、わからないことだらけです。。。 どなたか手を貸してください(-"-;) 宜しくお願いいたします

  • ユニオンクエリで期間指定抽出のSQL記述について

    いつもお世話になっております。 Access 2007で、「人名集計」テーブルと「資料送付」テーブルがあり、それぞれ、同一のフィールド名でテーブルが作成されております。 これを「発送日」フィールドの昇順で並べ替えながら結合するユニオンクエリを作成しました。 SELECT * FROM 人名集計 UNION ALL SELECT * FROM 資料送付 ORDER BY 発送日; とりあえず、上記のSQLでは動いていますが、このSQLに、 「発送日」の期間を指定して、抽出条件(パラメータ)を加えようとしていますが、うまくいきません。 WHERE句を使って、Between 「最初の日付を入力」 And 「最後の日付を入力」 のような文を SQLの何処にどのように記述すればよいのか、教えてください。 宜しくお願い申し上げます。

  • ACCESS更新クエリで型変換エラー

    ACCESSで更新クエリを作成して実行したら 「…個のフィールドで型変換エラーが発生したためレコードを更新できませんでした。」 となってしまいます。 「医薬品コード(-)」というフィールドに「医薬品コード」フィールドの文字から( )で囲まれた部分を省いた文字を更新するクエリを作りたいのです。 更新クエリのレコードの更新セルに入力しているのは Left([医薬品コード],InStr([医薬品コード],"(")-1) です。 更新するフィールドの設定は 値要求:いいえ、空文字列の許可:はい、インデックス:いいえ、Unicode圧縮:いいえ 型変換エラーの原因はなんでしょうか?

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

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

  • アクセスのクエリの組み方を教えてください

    アクセスで、クエリを組みたいのですがうまくできません。 添付画像をご覧ください。 テーブル1の中の「仕入コード1」フィールドと「仕入コード2」フィールドと 仕入コードマスタの「仕入コード」フィールドとの掛け合わせを行いたいです。 その結果、 (1)「仕入コード1」フィールドに存在して、「仕入コード」フィールドに存在しない、 (2)「仕入コード2」フィールドに存在して、「仕入コード」フィールドに存在しない レコードを一度に抽出したいです。 今回の場合であれば、品番222(含むAB)と品番333(含むAD)の2レコードを抽出したいです。 クエリを組みましたが、うまくそのようにできませんでした。 クエリのどこがおかしいのか?ご指摘頂けませんでしょうか。よろしくお願いいたします。

専門家に質問してみよう