• ベストアンサー

ACCESSのクエリの中でのクエリ指定

ACCESSのクエリで複数テーブルを結合させ明細表示させました。 その明細作成クエリーを更にそのクエリをテーブルと指定して 合計のクエリを作成して結果を確認すると合計が違っていました。 確認の為、集計を取りその明細クエリーをクエリー上でテーブル 指定してみたところ、元の明細クエリーのみの場合とレコード数 がかわっって表示されまました。 クエリーのテーブルにクエリを指定するのはNGなのでしょうか。 何方かなぜそうなるのか、また、正しい方法があれば教えてください。 宜しくお願いします。

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

  • ベストアンサー
回答No.1

クエリーのテーブルにクエリを指定するのはNGではありません。 SQL文が無いので何処が悪いのかなんともいえません。

mino33s
質問者

お礼

早速の回答ありがとうございました。 多くのテーブルを連携させるクエリを作成 するのには細心の注意が必要なことと、 テーブルの結合順も気をつけなければならないことが 分かりました。

mino33s
質問者

補足

クエリー実行後データシート上で会員NO順に並び変えを行ったところ レコードの数が変わりました。 元クエリでテーブルを数珠繋ぎのように連結してましたので中間でデータの重複が起こっていました。 ただ、並び変えを行うだけでレコード数が変わるのも問題だとは思います。 別の問題となり申し訳ありません。

関連するQ&A

  • Accessのクエリについて

    ふたつのテーブルから抽出したユーザー名が重複してしまいました。それを一つだけに絞ってユーザーの件数の合計を出したいのですが、方法はありますか? 私がとった方法はクエリプロパティのレコードを「はい」にしましたがうまくいきませんでした。 それでピボットテーブルで集計をしましたが、やはりテーブルデータシートで確認できたら便利に思います。 どなたかお知恵をお貸しください。 よろしくお願いいたします。

  • Accessのクエリによる集計が出来ない

    Accessのクエリによる集計が出来ない kamuycikapです。 OKWaveで様々な方のアドバイスを頂きながら、慣れないAccessと悪戦苦闘しております。 一昨日、計算したい表を作成する為にOKWaveに質問を載せました。 http://okwave.jp/qa/q5549286.html 無事に上記のアドバイスでリレーションのオプション設定を行い、集計計算したいクエリの結果を表示することが出来ました。 その表を元にして 下記の質問でアドバイス頂いた方法による集計を行おうとしたのですが、集計出来なくて困っています。 http://okwave.jp/qa/q5544785.html データベースの構成とキーは以下のとおりです。 --ここから <データベース構造:リレーションシップ> リレーションシップとテーブルの構成は下記の通りです。 -->がリレーションシップです。 Kがキーになります。 ■テーブルA      ■テーブルB    ■テーブルC    ■テーブルD K納品書コード --> K納品書コード --> K納品書コード  --> K納品書コード 仕入数          K商品コード  --> K商品コード   --> K商品コード                             K商品連番    --> K商品連番                             出品数量        K出品連番                             商品名           発送個数                             色             発送日付                             サイズ                             売値 ※テーブルCからテーブルDへのリレーションオプションを「’テーブルC’の全レコードと’テーブルD’の同じ 結合フィールドのレコードだけを含める。」としています。 <作りたいデータ> 納品書コード、商品コード、商品連番、商品名、色、サイズ、売値、仕入数、出品数量、発送個数、出品在庫数、倉庫在庫 <クエリ> ○グループ  納品書コード、商品コード、商品連番、商品名、色、サイズ、売値、仕入数、出品数量 ○合計(集計)  発送個数 ○出品在庫数(演算)  [出品数量]-[発送個数] ○倉庫在庫(演算)  [仕入数]-[発送個数] <データ状況> テーブルCのデータは約300レコードありますが、そのうち20件ほどしか商品が発送されていない為、テーブルDのデータは20件しかありません。 <望む結果> テーブルCのデータが全て表示され、紐つけられたテーブルDのデータがが存在する場合は、発送個数を表示し出品在個数を演算する。 演算した出品在個数を利用して、倉庫在庫も演算する。 <クエリの実行結果> テーブルCのデータが全て表示され、テーブルDに紐つけられたレコードも表示されるが、テーブルDに入力されている20件のデータが商品連番(テーブルCのフィールド)ごとに集計されない。 --ここまで <目的> お店に出品された商品は、日を分けて少しずつ売れていきます。(一日で全部売れることもありますが....) 従って、出品された商品(テーブルCのデータ)に対して売れていく数(テーブルDの複数のレコード)のデータがぶら下がっている形になります。 このようなデータベースですので、出品した商品が何個売れたかを計算する為には、商品に対する売れた個数を集計(合計)しなければなりません。 <結果> テーブルCの商品連番ごとの発送個数を集計したいのですが、テーブルDの出品連番ごとの集計になっている様子です。 <頂きたいアドバイス> 上記のデータベースとクエリで、テーブルCの商品連番に紐ついたテーブルDに格納されている発送個数の合計値を集計するための方法 以上、識者の方のアドバイスをお願い致します。

  • ACCESS クエリの抽出のやり方

    初投稿になります。よろしくお願いします。 無礼な事、不明瞭な事がありましたらご指導宜しくお願いします。 ACCESS2007 クエリで困っています。 テーブル_出荷 【コード{主}】【出荷先(1)】【出荷先(2)】 テーブル_明細 【コード】【種類】【数(1)】【数(2)】と構成されたテーブルがあります。 フィールド【コード】はリレーションシップで繋ぎました。 クエリで 【コード(出荷)】【種類{抽出条件:果物}】【数(1)】【数(2)】【種類{抽:野菜}】【数(1)】【数(2)】 とテーブル_出荷・テーブル_明細・テーブル_明細_1で選択クエリをつくりました。 クエリを実行すると無事表示されたのですが、後日データを更新したら 表示されなくなりました。 おそらく【コード(出荷)】に対して【種類{抽:野菜}】が存在しないレコードが出てきたからだと思います。 存在しない場合は「空白」か「0」で表示したいのですが、何か方法がないでしょうか?

  • ACCESSのクエリの関数について

    ACCESSのクエリの関数について 列の標準偏差はテーブルの集計で出来ますが、レコードの標準偏差を求めたいと思います。 クエリの関数で、StDev(expr)のexprにレコードの[テーブルの名前]![フィールド名前]を 入れる時には","で続けるのか? この方法では式が作成出来ません。

  • アクセスのクエリーのことで教えてください

     テーブル1とテーブル2があってクエリーでリレーションシップを組むときに  結合プロパティを「テーブル1の全レコードと、テーブル2の同じ結合フィールドのレコードだけを含める。」にして表を作ろうとしたのですが、テーブル2に レコードが無い場合、テーブル1,2を使って作ったクエリー1で表を作り、 ビルドでクエリー1の項目を貼り付けて、計算させると、テーブル2にレコードが無いと空欄になっているためか、計算がうまく行きません。この問題を解決するにはどのような方法をとればよいですか? ほんとにこまったちゃんになっているので教えてください。 

  • Access クエリ このレコードセットは・・・

    いつもお世話になります。 Accessで下記の様にクエリを作成しましたが、”このレコードセットは更新できません”と出てしまいます。 ■テーブル1  ・顧客ID(主キー)  ・顧客名  ・住所  ・TEL ■テーブル2  ・顧客ID  ・取引ID(主キー)  ・請求金額 ■クエリ1(集計クエリ)  ・顧客ID グループ  ・請求金額合計: Sum(請求金額) 合計 ■クエリ2(実際に使用するクエリ)  ・顧客ID(テーブル1)  ・顧客名(テーブル1)  ・住所(テーブル1)  ・TEL(テーブル1)  ・請求金額合計(クエリ1) このクエリ2を開いて更新しようとしても、”このレコードセットは更新できません”と左下に表示されて更新できません。 ・請求金額合計(クエリ1)を除けば問題なく更新できます。 ですが1顧客に対して通算で幾ら請求をしたかとその顧客のデータを同一クエリで表示・更新したいので、意味をなさなくなってしまいます。 どなかた良い方法をご教授下さいませ。

  • Access:クエリーにて集計後に文字列結合したい。

    Accessのクエリーでレコードのグループ化を行っている状態で、あるフィールドに対してだけ文字列の結合を行いたいのですが、集計部分をどのように指定すればよいかわからず困っています。 イメージとしては、SQLビューにて、グループ化されたレコードの合計が、  SUM([テーブル名].[フィールド名]) で求められる様に、 エクセルの文字列結合関数  CONCATENATE([テーブル名].[フィールド名]) が使いたい、という感じです、、 Accessにおける文字列結合は"&"を使うとありましたが、この場合どのように記述するべきでしょうか?

  • Access2003 一つのクエリで結果を出したい

    お世話になります。 下記テーブルを紐付けてクエリを作成します(Access2003)。 受注テーブル  ・ID  ・コード  ・数量 検品テーブル  ・ID  ・コード  ・検品フラグ マスターテーブル  ・ID  ・コード  ・印刷フラグ 検品テーブルのレコードは、受注テーブルの数量合計が展開されたレコード数となります。例えば、AAAというコードで数量合計が8の場合、検品テーブルではAAAのレコードが8レコード存在することになります。 但し、マスターテーブルの印刷フラグがYesとなっているものは、数量がいくつあっても受注テーブルは1レコード作成されます(数量合計で展開しない)。  受注テーブル   ID コード 数量   1  AAA   5   2  AAA   3   3  BBB  100  検品テーブル   ID コード 検品フラグ   1  AAA   Yes   2  AAA   Yes   3  AAA   Yes   4  AAA   Yes   5  AAA   Yes   6  AAA   Yes   7  AAA   No   8  AAA   Yes   9  BBB   Yes  マスターテーブル   ID コード 印刷フラグ   1  AAA   No   2  BBB   Yes こんな感じです。 そこで各テーブルをコードで紐付けてグループ化し、検品フラグYesで抽出した状態で以下の結果を表示出来るようにしたいところです。 コード 数量合計  AAA   7  BBB  100 要するに印刷フラグがYesのものは受注テーブルの数量合計を表示し、それ以外は検品された数を表示させたいと考えています。 あらかじめ受注テーブルでコードでグループ化し、数量の合計を算出するクエリ(※1)を作成し、そのクエリと検品テーブル、マスターテーブルを紐付けたらうまく表示出来ました。 ※数量合計はIIFで印刷フラグ=Yesの場合は※1の数量合計を、Yesではない場合は検品テーブルのレコードカウント数を表示。 しかし、できれば一つのクエリで上記の結果を表示させたいのですが、可能なのでしょうか。 ご教授お願い致します。

  • MSアクセスのクエリで結果がおかしい

    アクセス2000で追加クエリを作成していますが、 クエリのデータシートビューで確認したレコードと 追加されたテーブルで確認したレコードが異なり、テーブルのデータが少なくなってしまっています。 条件としては、 クエリの参照元 SQLサーバからのリンクテーブル(レコード数で13万件程度) 追加先のテーブルはローカルのmdb内です たまたまかもしれませんが、今テストしているデータは、 クエリ上では、19件あるものの、実行しても9件しか追加されません。 原因としてありそうなものがわかる方がいれば、よろしくお願いします。

  • Accessの集計クエリで計算

    Microsoft Access2016において、クロス集計クエリに表示される数値を使って計算をするには、どこにどんな数式を入力すれば良いですか。テーブルに表示される数値ではなく、クロス集計クエリで計算された合計の値を使 います

専門家に質問してみよう