• ベストアンサー

Access 分類分け クエリの作成方法について

商品分類項目に野球 テニス サッカー等の項目が15以上あります。 その各項目にウエア シューズ グッズ 構成比率とあります。 テーブルを作成するときに構成比率 ウエア シューズ グッズ 分類IDとフィールドを作成し、項目事に分類IDを振り分けました。 野球販売高を算出するには売上高*野球構成比/100*0.5と計算します。 クエリでこれらを計算するには抽出条件で15項目のファイルを作成する必要がありますよね さらに計算する1項目につき1ファイル必要ですよね 算出するのは野球販売高だけではなく、テニス販売高、サッカー販売高 と項目事に必要です。 計算項目はこれ以外にも14あり、それらを上記の方法で算出するとファイル数が膨大になります。 Accessではクエリの数が数十個になるのは普通なのでしょうか?

  • sskj
  • お礼率24% (75/303)

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

●質問にはテーブル等の具体例を挙げて質問すること この質問は説明は長いが、詳細は判りにくい ●テーブル設計について適否の判断を仰ぐこと  構成比率をテーブルに持つのは適当か。算出項目ではないのか。 ●クロス集計クエリで解決できるか(#1のご回答) ●アクセスのピボットテーブルでできないか。( クロス集計クエリと似ているが。 http://www.relief.jp/itnote/archives/000670.php バージョン2002から、Accessでもピボットテーブルやピボットグラフが作れるようになりました。 詳細 http://homepage2.nifty.com/MrUr/katuyo/pvtsamp.htm http://hamachan4.exblog.jp/4469219/ ほか多数 ーー 勝手にデータを作ってみた(実例を挙げてないので回答者に手数をかけることになるのだよ) ID スポーツ フィールド2 フィールド3(=売上) 1 野球 ウエア 20 2 テニス ウエア 15 3 野球 シューズ 10 4 テニス ウエア 20 5 サッカー ウエア 30 6 テニス ウエア 5 7 テニス シューズ 15 8 野球 ウエア 40 9 サッカー グッズ 25 10 テニス グッズ 20 11 サッカー ウエア 10 12 野球 グッズ 50 13 テニス シューズ 15 選択クエリ化する ID スポーツ フィールド2 フィールド3 1 野球 ウエア 20 2 テニス ウエア 15 3 野球 シューズ 10 4 テニス ウエア 20 5 サッカー ウエア 30 6 テニス ウエア 5 7 テニス シューズ 15 8 野球 ウエア 40 9 サッカー グッズ 25 10 テニス グッズ 20 11 サッカー ウエア 10 12 野球 グッズ 50 13 テニス シューズ 15 タイトルバーの右部で、右クリック ピボットテーブルビュー 列・行にフィールドをD&D 真中のエリアにフィールド3をD&D 合計に加工して(やり方は http://hamachan4.exblog.jp/4469219/の >集計フィールドを作成する場合は、の部分を参照)     ウエア グッズ シューズ 総計 サッカー 40 25 65 テニス 40 20 30 90 野球 60 50 10 120 総計 140 95    40 275 ーー こんなものと質問事項は大幅に違うのだろうか。質問の意味が良く取れなかった。

sskj
質問者

補足

質問内容の意味が分からなかったようですみませんでした。 私自身も今一理解してない部分がありまして困っています。 質問内容に関しては♯1の補足内容に書かせていただきました。 ピボットテーブルを使用すれば作成できそうですね。 回答ありがとうございました。

その他の回答 (1)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

クロス集計クエリを作れば良いのでは? クロス集計クエリで商品分類毎の構成比の一覧を作成 行見出しに商品分類 列見出しに構成する内容 データを構成比率の合計で 商品分類_合計_ウエア_シューズ_グッズ 野球   100  30    20   50  テニス  100  50    20   30 サッカー 100  30    50   40 ・ ・ と展開させて 商品分類 売上高 野球   100000 テニス  120000 サッカー  80000 ・ ・ のテーブルを使って、新たなクエリで [売上高]*[ウェア],[売上高]*[シューズ],[売上高]*[グッズ]を計算

sskj
質問者

補足

多分質問内容を誤解されているのだと思いますが・・・ 私も勘違いしていたことがあります。(15項目のファイルは必要ないかもしれません) 最終的なレポートとしては 野球 テニス サッカー 販売高 販売高 販売高 ・ ・ ・ 販売高合計 販売高合計 販売高合計 としたいのですが現状のクエリでは 分類名 販売高 野球 ・ ・ テニス ・ ・ サッカー ・ ・ 別ファイル 分類 販売高合計 野球 テニス サッカー となっております。 (この算出内容にウエア シューズ グッズは関係ありません) 求めるレポート形式をつくりにはクエリを項目事に分割しないと いけないと思うのですが・・・どうでしょうか? 以下がすべての項目の販売高を算出するクエリです。 ・売上高が空白の場合は集計条件からはずしています。 ・データレベルという項目が12の場合のみ抽出しています。 SELECT ■商品分類.分類名, ■調査データ2(商品分類).売上構成, ■調査データ2(商品分類).ウエア, ■調査データ2(商品分類).シューズ, ■調査データ2(商品分類).グッズ, ■調査データ(売上げ).前年度売上高, [前年度売上高]*[売上構成]/100+0.5 AS 販売高, ■店マスタ.データレベル FROM ■店マスタ INNER JOIN (■商品分類 INNER JOIN (■調査データ2(商品分類) INNER JOIN ■調査データ(売上げ) ON ■調査データ2(商品分類).店コード = ■調査データ(売上げ).店コード) ON ■商品分類.分類ID = ■調査データ2(商品分類).分類ID) ON (■店マスタ.店コード = ■調査データ2(商品分類).店コード) AND (■店マスタ.店コード = ■調査データ(売上げ).店コード) WHERE ((Not (■調査データ(売上げ).前年度売上高) Is Null) AND ((■店マスタ.データレベル)="12")); 販売高合計算出クエリ SELECT ●販売高(すべて).分類名, Sum(●販売高(すべて).販売高) AS 販売高の合計 FROM ●販売高(すべて) GROUP BY ●販売高(すべて).分類名;

関連するQ&A

  • Access 構成比 クエリ集計

    販売高:クエリ 品目 ウエア販売高_シューズ販売高_グッズ販売高_販売高計_ 野球  100__________300_____________250_650 サッカー200___________400_____________300_900 卓球  300___________500_____________400_1200 合計  600___________1200____________950_2750 以下のような各項目の構成比をだしたいのですが、Accessだと複雑になりますよね? 集計結果 品目 ウエア販売高_構成比_シューズ販売高_構成比_グッズ販売高_構成比_販売高計_構成比 野球  100______構成比____300__構成比___________250_構成比_650_構成比 サッカー200______構成比_____400__構成比___________300_構成比_900_構成比 卓球  300______構成比_____500__構成比___________400_構成比_1200_構成比 合計  600______100%_____1200_____100%__________950_100%_2750_100% 構成比___________21.8%_________構成比_________構成比______100% 構成比は販売高計の合計を100としそれを対象の金額で割って小数点第二位で四捨五入したものです。 例)ウエア販売高合計の構成比 21.8%=int(600/2750*1000+0.5)10 EXCELで計算しても良いのですが・・・クエリが複雑になりすぎますかね

  • Access フォームの作成 レコードの追加について

    原稿が以下のようになっている、フォームを作成したのですが 入力に手間が掛かるので良案がありましたらお願いいたします。 企業コードxxxx 店名_xxx店 住所_xxxx市xxx村 商品分類_売上構成_ウエア_シューズ_グッズ 野球ソフト_(野球ソフトの構成数値)_(野球ソフトのウエアの構成数値)_・・・ テニス_ バドミントン_ 卓球_ ゴルフ_ ・ ・ ・ 合計_ 分類ID(商品名)は15商品と決まっております 3品目もウエア、シューズ、グッズと決まっております。 原稿は商品名15品目がすべて印字済みです。 エクセルの表のような原稿だと考えていただければよいかと思います。 テーブルは正規化に則り以下のように作成しました。 売上構成テーブル 企業コード_売上構成_分類ID(商品名のID) 3品目(ウエア、シューズ、グッズ) 企業コード_3品目構成比_分類ID_項目ID(3品目のID) 店マスタテーブル 企業コード_店名_電話番号 等 現在は店マスタテーブルをメインフォームにサブフォームを 売上構成、3品目と作成しましたがこのままでは見にくいですし IDをわざわざ入力しなければなりません。(新規のデータの場合) メインフォーム(単票フォーム) サブフォーム(データシート) 一つの企業コードに対して最大15商品、それらに対して3品目は決まっているので ID入力を省くように追加ボタンの作成は出来ないのでしょうか? 企業コードを指定してクリックすると売上構成に1~15までの商品レコード追加。 企業コードを指定してクリックすると3品目項目IDを追加。 入力の並びに関しては以前ご質問したときにVBAで長いコードを 書かなければならないと解答をいただきました。 VBAは殆どさわった事ないので分かりません。(検索に使っている程度です。) 以上のことでもし何かありましたら回答お願いいたします。

  • Accessクエリで分類ごとの累計を計算する方法

    テーブルのデータをクエリに読み込んで、大分類ID-小分類IDの組合せを元にして、 月々の累計を計算したいのですが、算出式がどうしてもわかりません。 DSUMを使えばいいかなと思い、クエリのフィールドに、 累計:DSUM("金額","tbl_sample",    ) のような感じでやってみたのですが、条件式をどういれてよいかわかりません。 もし分かる方がいらっしゃればお知恵をお貸しください。よろしくお願いします。 イメージ的には以下のような感じで、★箇所のような累計結果を算出したいです。 ------------------------------------------------------------ 元のテーブルファイル名:tbl_sample 月 大分類ID 小分類ID 金額 ★累計 4___1___1___\100_\100 4___1___2___\200_\200 4___2___1___\300_\300 4___2___2___\400_\400 5___1___1___\150_\250 5___1___2___\250_\450 5___2___1___\350_\650 5___2___2___\450_\850 --------------------------------------------------------------

  • Accessのクエリで2

    お伺い致します。 テーブル名:テーブルA  フィールド:月日,販売先,品番 テーブル名:テーブル期間  フィールド:分類、始月日、終月日 テーブル名:材料テーブル  フィールド:品番,材料1,材料2, 分類 の3テーブルが有り ”テーブルA”の月日の違いで”テーブル期間”の分類を表示させた後 現在品番と分類で材料1、材料2の使用量をクエリで以下のように表示 クエリ名:Q_テーブルA 月日,販売先,品番, 材料1, 材料2 0501,東京販売,18-18, 270, 180...材料の使用量は月日と品番で決まる、 1105,仙台販売,18-21, 290, 190 0801,大阪販売,21-21, 300, 190 0907,東京販売,27-18, 350, 175  ここでお伺いしたい事は 材料テーブルの事ですが実際は品番が30種類、材料が10種類の300データに及び それに期間による材料テーブル1と2の2種類あります 各々の表はエクセルで計算させインポートさせた後ユニオンクエリで一緒にし テーブル作成クエリで”材料テーブル”を作成するという事をしていますが。 そのまま、テーブル1とテーブル2を月日の違いによる分類1,2でスイッチさせて クエリ”Q_テーブルA”を作成する方法が有りませんでしょうか 簡単に出来ると思いつつも良い方法が浮かばず回り道しています。 よろしくお願い致します。

  • ACCESS フォームの作成について

    企業コード(重複しない)売上構成比(abc商品)、項目構成比(a)、項目構成比(b),項目構成比(c) と項目がある場合、私の作成したデータベースでは 売上構成比テーブル 企業コード_売上構成比_種別ID 3項目テーブル 企業コード_3品目項目ID_種別ID_項目構成比_種別名 としています。 売上構成比と言うのは売上の種類別の比率です。(15種類) さらにその種類の項目別の比率が3項目あります。 同じ企業コードで同じ種別IDの項目構成比を足せば100%になります。 同じ企業コードで売上構成比を足せば100%になります。 企業コードは店舗のデータがあるので(店名、住所等)そちらの主キーになります。 要約すると、店別の構成比ということです。 ここで問題になるのが、入力フォームを作成するさいに、 売上構成比(abc商品例ゴルフ)、項目構成比(a項目)、項目構成比(b項目),項目構成比(c項目) のように作成しないとミスを気づかない場合があります。 ですので項目IDごとにクエリを作成し (項目a 項目b 項目c)それらのクエリを企業コード、種別IDで結び、 これをサブフォームとして作成したのですが、次のレコードに進むときに処理に時間がかかります。5秒程度 サブフォームの総レコード数が23万件弱あるため仕方がないのですが、どうにかならないでしょうか? //upload.jpn.ph/upload/upload.php?id=30628 分類名=種類名 例:3品目テーブル 企業コード 種別ID 項目ID 項目構成 3 1 1 0 3 1 2 0 3 1 3 0 3 2 1 0 3 2 2 0 3 2 3 0 3 3 1 0 3 3 2 0 3 3 3 0 3 4 1 0 3 4 2 0 3 4 3 0 3 5 1 0 3 5 2 0 3 5 3 0 3 6 1 0 3 6 2 0 3 6 3 0 3 7 1 0 3 7 2 0 3 7 3 0 3 8 1 0 3 8 2 0 3 8 3 0 3 9 1 10 3 9 2 5 3 9 3 85 3 10 1 0 3 10 2 0 3 10 3 0 3 11 1 0 3 11 2 0 3 11 3 0 3 12 1 0 3 12 2 0 3 12 3 0 3 13 1 0 3 13 2 0 3 13 3 0 3 14 1 0 3 14 2 0 3 14 3 0 3 15 1 0 3 15 2 0 3 15 3 0

  • Access クエリ、レポートによる集計について

    クエリで目的の集計結果を出すために制作中なのですが 私の作り方が悪いようでレポートを作成する段階でAccessが フリーズしてしまいます。 集計内容テーブル構成は以下のとおりです。 (マーケティング処理用のデータベース) 一つの企業がいくつもの店を持っています。 企業用のデータと店用のフィールド項目は同じですが一対多を保つためにテーブルを分けています。(企業側が一、店側が多。) このように一つの企業に対して店がいくつもある場合、多店舗と呼んでいます。 この多店舗を持つ企業データだけで1500社程度あります。 多店舗のデータは1万件ほどです。 一つの企業に対して一つの店しかない単独店のデータもあります。 企業用と店用を分ける必要が無いので単独店のデータは一つだけです。 今の段階では企業テーブルに多店舗の企業データ。 店テーブルに多店舗のデータと単独店のデータとなっております。 別テーブルに商品分類テーブルがあり、フィールドとしては構成比、分類IDとなっています。 この商品分類を横並びにするためにクロス集計クエリを使い横並びにしました。分類は15品目程度あります。 ついでに構成比と別テーブルにある売上を元にパーセントを金額に直しています。抽出条件に売上100000以上としています。 クエリ名:●販売高(すべて) http://upload.jpn.ph/img/u14091.txt 県ごと企業ごとの集計をしたいので、 フィールドは 都道府県、掲載拒否(0)、データレベル(10)、企業コードをグループ化。以下商品分類は合計と設定しています。  クエリ名:◆多店舗販売高(仮名) (データレベル、00が単独店 10が多店舗)  (掲載拒否、1の場合は拒否) ttp://upload.jpn.ph/img/u14092.txt 単独店は一店舗だけなので多店舗のような企業ごとの集計はする必要がありません。販売高クエリを使いデータレベル00、掲載拒否0、商品分類や企業コードを入れただけです。 これで完成ではなく、掲載拒否の合計データを入れる必要があります。 フィールドとしては、都道府県、店名、掲載拒否(1)、企業コードでグループ化、以下商品分類は合計。 これら3つの集計内容をユニオンクエリで一つにしています。 (多店舗販売高+企業名、単独店販売高、その他販売高)(県別集計) 多店舗販売高に関しては後から企業名を別クエリで足しています。 フィールド数、フィールド名を合わせる為に、その他販売高クエリの、店名及び企業コードはNULLで設定しています。 このユニオンクエリをレポートで設定し、グループレベルでトップを県、 二番目に掲載フィールドを設定。 集計は分類のすべてを合計で設定。 県でグループ化して、その他とそれ以外の合計を出したいので掲載フィールドをユニオンクエリを作成する前段階で追加しました。 (掲載1はその他、それ以外は0) 集計したい内容をエクセルで簡単に表すとこういう感じです。 ttp://upload.jpn.ph/img/u14090.jpg 社数やシェアなどの計算はクエリでさらに作成しなければならないのでしょうか?

  • ACCESS まとめて表示するクエリについて

    商品の売上データ・仕入データが個別にあります。 商品には大中小の分類があり、各分類は2ケタのコードです。つまり、 (1) 大分類/中分類/小分類/仕入金額 01/02/05/1,000 という構成のデータと (2) 大分類/中分類/小分類/売上金額 01/02/05/1,250 という構成のデータとがあるわけです。この2つをExcelデータで持ってて、データが大量なのでAccessに取り込み、最終的には 大分類/中分類/小分類/仕入金額/売上金額 01/02/05/1,000/1,250 というように、仕入金額と売上金額を一纏めにして表示したいのです。 ここで、上記(1)を仕入テーブル、(2)を売上テーブルとし、 SELECT 大分類,中分類,小分類,仕入金額,売上金額 FROM 仕入,売上 WHERE 仕入.大分類=売上.大分類 AND 仕入.中分類=売上.中分類 AND 仕入.小分類=売上.小分類 とクエリを作ってみたら、各テーブルのデータが数千件になっただけで、物凄くクエリの動きが遅くなりました。 大中小分類の一致を、WHEREでなくINNER JOINで記述してみても、遅くなります。 最初のテーブル作成からして、間違ってるでしょうか?いい案はないでしょうか?

  • ファイルメーカーでアクセスクエリーみたいな作成方法

    データベースソフトのアクセスは多少知識があります。 ファイルメーカーでアクセスで言うところのクエリーはどの様に作成したらよろしいでしょうか。 例えば、従業員コードをキーとして テーブル1(従業員マスタ)  従業員コード  氏名  入社年月日 テーブル2(住所録)  従業員コード  住所 テーブル3(家族構成)  従業員コード  配偶者  扶養1 上記テーブルを3つ作成し、アクセスで言うところのクエリーみたいな感じで  従業員コード  氏名  住所  配偶者 上記レコードをまとめたテーブルを作成したい。   何か参考になる資料(本)のご紹介、もしくは教えてもらえませんでしょうか。 よろしくお願い致します。

  • Access 集計について

    サブフォームでDsumを使用しIDごとの合計を表示するようにしたのですが、結果が100になるはずですが、表示が99.9999976158142や100.000002384186となってしまいます。 上と同じ現象だと思うのですが、売上から構成比率で構成金額を算出して、同じ種類の構成金額を合計したものをはじめの売上で割り構成比率に直したものを表示し、構成比全種類を合計足した場合100になるはずなのですが、94.5と計算が間違っています。 これらの原因が分かる方お願いいたします。

  • ACCESS2010 クエリについて質問です

    ACCESS及びネットでの質問初心者です。 会社の給与計算のデータベースファイルを アクセスのクエリ機能を利用して、 社会保険の月額変更のチェックに使おうと考えております。 以下、質問にご回答いただけましたら幸いです。 現在のデータベースファイルが 年月日 社員番号 月給  家族手当  住宅手当 2012/12/25 1 350000  30000    10000 2013/1/25 1 350000  30000    10000 2013/2/25 1 355000  30000    10000 2012/12/25 2 200000  10000    10000 2013/1/25 2 200000  10000    10000 2013/2/25 2 200000  10000 10000 2012/12/25 3 400000  30000 10000 2013/1/25 3 400000  30000 10000 2013/2/25 3 390000  30000 10000 のように並んでいます。 それをクエリを利用し、 社員番号   給与計(2012/12/25) 給与計(2013/1/25) 給与計(2013/2/25) 1    390000      390000     395000 2    220000      220000     220000 3    440000      440000     430000 のようなデータを作成したいのですが、 どのような機能を使えばよいのかが分かりません。 質問があいまいで申し訳ないのですが、 教えて頂けますでしょうか。 よろしくお願い致します。

専門家に質問してみよう